Existe-t-il une méthode que je peux utiliser pour vérifier si un raw_input
est un entier?
J'ai trouvé cette méthode après des recherches sur le web:
print isinstance(raw_input("number: ")), int)
mais lorsque je l'exécute et que je saisis 4
par exemple, je reçois FALSE
. Je suis un peu novice en python, toute aide serait la bienvenue.
isinstance(raw_input("number: ")), int)
produit toujours False
car raw_input
renvoie un objet chaîne en conséquence.
Utilisez try: int(...) ... except ValueError
:
number = raw_input("number: ")
try:
int(number)
except ValueError:
print False
else:
print True
ou utilisez str.isdigit
:
print raw_input("number: ").isdigit()
NOTE Le second produit False
pour -4
car il contient des caractères non digits. Utilisez le second si vous ne voulez que des chiffres.
UPDATE Comme l'a souligné J.F. Sebastian, str.isdigit
dépend des paramètres régionaux (Windows). Il pourrait retourner True
même int()
lèverait ValueError pour l'entrée.
>>> import locale
>>> locale.getpreferredencoding()
'cp1252'
>>> '\xb2'.isdigit() # SUPERSCRIPT TWO
False
>>> locale.setlocale(locale.LC_ALL, 'Danish')
'Danish_Denmark.1252'
>>> '\xb2'.isdigit()
True
>>> int('\xb2')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '\xb2'
Vous pouvez le faire de cette façon:
try:
val = int(raw_input("number: "))
except ValueError:
# not an integer
voici ma solution
`x =raw_input('Enter a number or a Word: ')
y = x.isdigit()
if (y == False):
for i in range(len(x)):
print('I'),
else:
for i in range(int(x)):
print('I'),
`
def checker():
inputt = raw_input("how many u want to check?")
try:
return int(inputt)
except ValueError:
print "Error!, pls enter int!"
return checker()
Essayez cette méthode .isdigit (), voir exemple ci-dessous.
user_input = raw_input()
if user_input.isdigit():
print "That is a number."
else:
print "That is not a number."
Si vous souhaitez que l'entrée reste numérique pour une utilisation ultérieure, vous pouvez ajouter quelque chose comme:
new_variable = int(user_input)