2017-10-05 4 views
0

Je suis donc très débutant dans la programmation et j'apprends tout de même les bases. Maintenant, j'aimerais que mon programme python demande à l'utilisateur de donner un numéro et continue à demander avec une boucle si une chaîne ou quelque chose d'autre est donnée à la place.Meilleure façon de demander la saisie de l'utilisateur sous forme entière en Python?

C'est donc le meilleur que je suis sorti avec:

value = False 
while value == False: 
    a = input("Give a number: ") 
    b = 0 
    c = b 
    try: 
     int(a) 
    except ValueError: 
     print("No way") 
     b += 1 
    if c == b: 
     value = True 

Ainsi est-il plus facile et mieux de le faire?

+1

Oui, il y a un meilleur moyen, mais si vous êtes un débutant comme vous le dites, bon travail pour y réfléchir et faire quelque chose qui a du sens dans votre tête pour le faire fonctionner – RSon1234

Répondre

3

Vous pouvez utiliser ceci:

while True: 
    try: 
     a = int(input("Give a number: ")) 
     break 
    except ValueError: 
     print("No way") 

ou ceci:

while True: 
    a = input("Give a number: ") 
    if a.isdigit(): 
     break 
    print("No way") 
+0

je pense OP demande pour garder la boucle en marche si la réponse n'est pas valide – PRMoureu

+0

@PRMoureu, oui, mon erreur. Mais il n'a aucun sens – AndMar

+1

c'est juste de faire entrer l'utilisateur un nombre valide – PRMoureu

1
while True: 
    try: 
     a = int(input("Give a number: ")) 
     break 
    except ValueError: 
     print("No way") 
     continue 

Cela continuera à demander à l'utilisateur un entier jusqu'à ce qu'ils donnent un.

+0

(le dernier 'continuer' n'est pas nécessaire s'il n'y a pas de code après) – PRMoureu

+0

Le continuer fait la boucle, pas continuer à la fin –

+0

Sinon, il garderait aller une fois qu'ils ont donné un nombre entier –

0
value = True 
while value == True: 
    a = input("Give a number: ") 
    try: 
     int(a) 
    except ValueError: 
     print("No way") 
     continue 
    print("Yay a Number:", a) 
    value = False 

Est-ce ce que vous cherchez?