Problème boucle while
FireStorm
-
FireStorm -
FireStorm -
Bonjour,
J'ai voulu mettre dans un programme une boucle while qui se répète tant que la réponse à ma question n'est pas "oui" ou "non" (Un truc basique quoi.)
while valide != True:
-------reponserecom = input("Souhaitez-vous recommencer? (oui ou non): ").lower()
-------if reponserecom == "oui" or "non":
-----------valide = True
Or, même quand valide est en False, la boucle s'arrête et passe à la suite. Quelqu'un pourrait me dire ce qui ne va pas?
Merci d'avance;
J'ai voulu mettre dans un programme une boucle while qui se répète tant que la réponse à ma question n'est pas "oui" ou "non" (Un truc basique quoi.)
while valide != True:
-------reponserecom = input("Souhaitez-vous recommencer? (oui ou non): ").lower()
-------if reponserecom == "oui" or "non":
-----------valide = True
Or, même quand valide est en False, la boucle s'arrête et passe à la suite. Quelqu'un pourrait me dire ce qui ne va pas?
Merci d'avance;
A voir également:
- Problème boucle while
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
comment sais-tu que valide est faux? je ne vois pas d'instruction qui en affiche la valeur. je pense que tu supposes qu'il est faux, et tu ne cherches donc pas pourquoi il est vrai.
en réalité, tu testes ainsi:
alors que tu veux probablement tester:
en réalité, tu testes ainsi:
if (reponserecom == "oui") or ("non"):, et "non" est toujours vrai.
alors que tu veux probablement tester:
if (reponserecom == "oui") or (reponserecom == "non"):
while valide != True:
-------reponserecom = input("Souhaitez-vous recommencer? (oui ou non): ").lower()
-------print(reponserecom)
-------if reponserecom == "oui" or "non":
-----------valide = True
en mettant le print à cet endroit là ou à la ligne du dessus, tu verras sa valeur avant qu'elle ne soit modifié dans le if, il est donc logique qu'il affiche False car tu as initialisé valide à False avant la boucle.
Si tu met le print(valide) à la dernière ligne de la boucle, tu verras que valide vaut True.