Python , input() contrôler les entrées

Fermé
wowsuchpython Messages postés 1 Date d'inscription mercredi 15 janvier 2014 Statut Membre Dernière intervention 15 janvier 2014 - 15 janv. 2014 à 21:53
 Utilisateur anonyme - 18 janv. 2014 à 09:58
Bonjour j'ai un petit probléme avec la commande input() de python , j'ai un programme qui a besoin que l'utilisateur rentre un entier positif (int) , mais j'ai aussi besoin que le programme ne plante pas si l'utilisateur décide de rentrer bonjour plustôt que 52 par exemple . Il faudrais que le programme lui repropose de rentrer une valeur ,mais je n'y arrive pas et les seules aides que je trouve sont en anglais ou concerne d'anciennes version de python (j'utilise python 3.3 )

j'avais essayer quelques chose comme ça mais ça ne fonctionne pas

typea=0
while typea !=1:
print("rentrer un entier positif")
a=input()
if type(a)==int:
typea=1
else:
print("entrée invalide")

Si quelqun pouvais m'aider a comprendre comment je doit faire ce serais trés gentils , merci d'avance.

2 réponses

steph30470 Messages postés 114 Date d'inscription dimanche 3 juillet 2011 Statut Membre Dernière intervention 31 juillet 2014 6
Modifié par steph30470 le 18/01/2014 à 00:57
Tiens l'ami
typea=0
while typea!=1:#Tant que typea est différent de 1 alors...
     try:#On demande à l'utilisateur de rentrer un nombre entier...
        nbr=int(input("Entrez un nombre entier positif:"))
        typea=+1#Si le nombre est un entier positif tout vas bien on sort de la boucle.
     except:#Mais si l'utilisateur à rentrer autre chose que un entier alors on lui affiche "Veuillez entrer un nombre" et la boucle recommence.
        print("Veuillez entrer un nombre")
       
Je pense que il y a 1000 fois plus simple et que je me complique la vie, mais d'autre utilisateur plus expérimenter que moi te montrerons des codes + simple sans utiliser try/except...
Voilà, allez bon courage.
1