Créer une boucle pour une erreur.
Résolu
Continuum
Messages postés
50
Date d'inscription
Statut
Membre
Dernière intervention
-
Continuum Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
Continuum Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Débutant en Python, je souhaiterais pourvoir créer une boucle lorsque le programme détecte une erreur précise, je ne sais pas si je suis clair donc voici un exemple:
Par exemple dans ce cas si l'utilisateur entre des lettres dans "mise" le programme lui demande de réessayer, mais si l'utilisateur rentre à nouveau des lettres (admettons qu'il soit bouché ^^), le programme se contente d'afficher "mise" et ferme, ce que je voudrais c'est que tant qu'il n'a pas entré de valeur correcte, c'est à dire ici des chiffres, le programme lui demande de recommencer.
C'est certainement possible par des moyens détournés avec des "while" ou des "for", j'ai notamment essayé de créer une boucle en stockant l'erreur dans une variable avec "as", mais ça complique nettement le problème.
Je n'ai pas trouvé le mot clé miracle malgré mes recherche sur le net, merci d'avance de votre aide!
Débutant en Python, je souhaiterais pourvoir créer une boucle lorsque le programme détecte une erreur précise, je ne sais pas si je suis clair donc voici un exemple:
mise=input("Saisissez votre mise")
try:
mise=int(mise)
except ValueError:
mise =input("Incorrect, Veuillez réésayer")
print (mise)
Par exemple dans ce cas si l'utilisateur entre des lettres dans "mise" le programme lui demande de réessayer, mais si l'utilisateur rentre à nouveau des lettres (admettons qu'il soit bouché ^^), le programme se contente d'afficher "mise" et ferme, ce que je voudrais c'est que tant qu'il n'a pas entré de valeur correcte, c'est à dire ici des chiffres, le programme lui demande de recommencer.
C'est certainement possible par des moyens détournés avec des "while" ou des "for", j'ai notamment essayé de créer une boucle en stockant l'erreur dans une variable avec "as", mais ça complique nettement le problème.
Je n'ai pas trouvé le mot clé miracle malgré mes recherche sur le net, merci d'avance de votre aide!
2 réponses
-
Tu as essayé d'insister ?
insiste = False while not insiste: try: mise=int(input("Saisissez votre mise : ")) insiste = True except ValueError: print ("Incorrect, Veuillez réésayer. ") insiste = False print (mise)-
-
Ce serait plus logique que ce soit:
insiste = True while insiste: try: mise=int(input("Saisissez votre mise : ")) insiste = False except ValueError: print ("Incorrect, Veuillez réésayer. ") print (mise)
Noter que ça ne sert à rien de redonner à insiste la valeur que ça a déjà dans le cas où on rentre dans la section "except"
On s'azperçoit aussi que insiste = False peut bien se remplacer par break et qu'on n'a pas besoin de l'objet isniste.
-
-
from sys import exit mess = "Saisissez votre mise " while True: mise=raw_input(mess) if mise.isdigit(): mise = int(mise) break elif mess=="Saisissez votre mise ": mess = "Saisissez un entier pour votre mise " elif mess=="Saisissez un entier pour votre mise ": mess = "Vous etes bouché ? Dernier essai" elif mess=="Vous etes bouché ? Dernier essai": exit() print '---------\nmise == %d' % mise