Existe-t-il un moyen rapide de trouver si une chaîne est un nombre réel, à moins de le lire un caractère à la fois et de faire isdigit()
sur chaque caractère? Je veux être en mesure de tester les nombres à virgule flottante, par exemple 0.03001
.Vérifiez si la chaîne est un nombre réel
Répondre
Si vous voulez dire un flotteur comme un nombre réel cela devrait fonctionner:
def isfloat(str):
try:
float(str)
except ValueError:
return False
return True
Notez que cela boucle interne toujours votre chaîne, mais cela est inévitable.
merci mais j'ai besoin de faire des flottants, donc je suppose que je pourrais remplacer l'essayer: int (str) avec try: float (str)? – Illusionist
Oui. (10 char limite lol) – orlp
* caveat *: N'utilisez pas une clause 'except' couverture! C'est une mauvaise pratique dangereuse. Attrapez 'ValueError' explicitement. – Santa
>>> a = "12345" # good number
>>> int(a)
12345
>>> b = "12345G" # bad number
>>> int(b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '12345G'
Vous pouvez le faire:
def isNumber(s):
try:
int(s)
except ValueError:
return False
return True
Si vous voulez un nombre flottant, par float
remplacer int
(grâce à @cobbal).
Il y a aussi une autre façon en utilisant l'expression régulière:
import re
def is_float(str):
if re.match(r"\d+\.*\d*", str):
return True
else:
return False
Cela ne fonctionne pas avec les nombres négatifs. – bfontaine
Méthode de vérifier nombre réel:
def verify_real_number(item):
""" Method to find if an 'item'is real number"""
item = str(item).strip()
if not(item):
return False
elif(item.isdigit()):
return True
elif re.match(r"\d+\.*\d*", item) or re.match(r"-\d+\.*\d*", item):
return True
else:
return False
- 1. Vérifiez si la valeur est un nombre
- 2. Vérifiez si le nombre dans la chaîne avec regex
- 3. Vérifiez si NSString "000001XX" est un nombre avec intValue
- 4. Vérifiez si la chaîne est un horodatage unix
- 5. Vérifiez si une valeur de scanf est un nombre?
- 6. Vérifiez que la chaîne d'entrée est valide Nombre décimal
- 7. Vérifiez si la chaîne est dans l'ordre abc
- 8. RegEx- Vérifiez si c'est un nombre masqué
- 9. Vérifiez si une chaîne particulière est dans un fichier bash
- 10. Vérifiez si une chaîne est un mot anglais?
- 11. jQuery: Vérifiez si le caractère est dans la chaîne
- 12. Vérifiez l'entrée est un nombre entier valide
- 13. Vérifiez si la chaîne base64 est une image GIF
- 14. Vérifiez si la chaîne est sérialisée en PHP
- 15. Vérifiez si un fichier est déjà copié
- 16. Vérifiez si la chaîne commence par l'onglet
- 17. Vérifiez si la chaîne contient \ n Java
- 18. Vérifiez si la chaîne correspond à l'URL
- 19. Vérifiez si la chaîne contient tout "?"
- 20. Vérifiez si la chaîne commence par
- 21. Vérifiez qu'un JTextField est un nombre
- 22. Vérifiez si dataGridView est vide
- 23. Vérifiez si stderr est vide
- 24. Vérifiez si la chaîne dans un tableau javascript
- 25. Vérifiez si l'entrée est un nombre et si ce n'est pas encore entré
- 26. Vérifiez si la chaîne est réglée, même si elle est 0
- 27. Vérifiez si un seul bit est zéro
- 28. Vérifiez si un rectangle est rempli
- 29. Vérifiez si la chaîne commence par une chaîne donnée
- 30. Vérifiez si un thread est interrompu?
Définir l'expression "un nombre réel". Entier ou virgule flottante? Signé ou non signé? etc – delnan