2017-07-24 2 views
0
if input()==int(): 
    print('mission successful!') 
else: 
    print('mission failed!') 

Pour le code ci-dessus le problème est, qu'il ne résulte jamais en mission successful même si mon entrée est un nombre entier.Comment vérifier si la chaîne d'entrée est un entier

Je viens de commencer à apprendre Python.

+1

Il est important de savoir que 'input()' ne vous donnera pas un entier, mais une chaîne, même si vous entrez un nombre. –

+2

Copie possible de [Comment vérifier si l'entrée de chaîne est un nombre?] (Https://stackoverflow.com/questions/5424716/how-to-check-if-string-input-is-a- number) –

Répondre

1

Pour vérifier si la chaîne d'entrée est numérique, vous pouvez utiliser ceci:

if input().isnumeric(): 
    print('mission successful!') 
else: 
    print('mission failed!') 

En Python, vérifier si une chaîne est égale à un nombre toujours False retournera. Pour comparer les chaînes et les nombres, il est utile de convertir la chaîne en un nombre ou le nombre en une chaîne en premier. Par exemple:

>>> "1" == 1 
False 
>>> int("1") == 1 
True 

ou

>>> 1 == "1" 
False 
>>> str(1) == "1" 
True 

Si une chaîne ne peut pas être convertie en un nombre avec int, un ValueError sera lancé. Vous pouvez l'attraper comme ceci:

try: 
    int("asdf") 
except ValueError: 
    print("asdf is not an integer") 
+0

Première méthode échoue pour les ints ou les flotteurs négatifs –