Duplicata possible:
Comment puis-je vérifier si une chaîne est un nombre en Python?
Python - Analyser la chaîne pour flotter ou Int
Par exemple, je veux vérifier une chaîne et si elle n'est pas convertible en entier (avec int()
), comment puis-je détecter cela?
Utilisez la méthode .isdigit()
:
>>> '123'.isdigit()
True
>>> '1a23'.isdigit()
False
Citant la documentation:
Renvoie vrai si tous les caractères de la chaîne sont des chiffres et s'il y a au moins un caractère, faux sinon.
Pour les chaînes unicode
ou Python 3 chaînes, vous devrez utiliser une définition plus précise et utiliser les unicode.isdecimal()
/ str.isdecimal()
à la place; tous les chiffres Unicode ne sont pas interprétables comme des nombres décimaux. + 00B2 SUPERSCRIPT 2 est un chiffre, mais pas une décimale, par exemple.
Vous pouvez toujours try
:
try:
a = int(yourstring)
except ValueError:
print "can't convert"
Notez que cette méthode surpasse isdigit
si vous voulez savoir si vous pouvez convertir une chaîne en nombre à virgule flottante en utilisant float