Python [Résolu]

Signaler
Messages postés
2
Date d'inscription
jeudi 10 septembre 2020
Statut
Membre
Dernière intervention
10 septembre 2020
-
Messages postés
12363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 septembre 2020
-
Bonjour,

Si il y a des bons programmeurs de python parmi nous peuvent-ils m'aider à voir l'erreur dans ce bout de code :




En faite ce que je cherche à faire c'est de forcer l'utilisateur à écrire bonjour ou bonsoir
et tant que ce n'est pas écrit on lui repose la question.


Le problème c'est qu'une fois testé dans l'interpréteur la question est posée
en permanence même si on remplit une des deux conditions.


Je veux juste comprendre pourquoi il affiche la question sans arrêt alors qu'il y a bien une condition (même deux !) pour arrêter la boucle.


J'ai déja réussi à faire ce que je voulais d'une autre façon : en mettant une deuxième variable booléenne. Mais le code est plus long.
Ce code marche aussi si on mets seulement une condition dans le while et non deux. Et ça je ne comprends pas. J'ai pourtant mis le "or"=ou. )

1 réponse

Messages postés
12363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 septembre 2020
694
bonjour,
peux-tu partager du texte, et pas des images? et utiliser les baises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

c'est un soucis de logique, pas de programmation.
la condition est toujours vraie, le texte étant évidemment toujours différent de l'un des deux.

un peu comme si tu écrivais "je reste à l'intérieur quand le jour n'est pas un samedi ou n'est pas un dimanche": tu ne sortiras jamais.

tu veux probablement utiliser "et", et pas "ou".
donc
!= and !=

ou bien
not ( = or =)

mais surement pas
!= or !=
Messages postés
2
Date d'inscription
jeudi 10 septembre 2020
Statut
Membre
Dernière intervention
10 septembre 2020

Bonjour yg_be,

Je te remercie pour ta réponse.

En effet, je viens d'essayer le code en utilisant "and" et il est fonctionnel.

J'ai encore un peu de mal à voir pourquoi le "or" ne marchait pas.

Littéralement le code voudrait dire : Tant que a est différent de Bonjour ou a est différent de Aurevoir :
Reposer la question.

D'ailleurs voici le code tel que je l'ai essayé au départ :


a = str(0)
b = 0
while a != "Bonjour" and a != "Bonsoir" :
a = input("Entrez une formule de politesse : ")
b = 67 #Ensuite il execute ce bloc d'instruction pour voir si tout va bien
print(b)
Messages postés
12363
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 septembre 2020
694 >
Messages postés
2
Date d'inscription
jeudi 10 septembre 2020
Statut
Membre
Dernière intervention
10 septembre 2020

tout mot est différent de bonjour ou différent de aurevoir, non?
presque tous les mots sont différents de bonjour et différents de aurevoir.