While et opérateurs or et and

Résolu/Fermé
Pythonbegg - 3 déc. 2022 à 21:30
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 - 4 déc. 2022 à 09:06

Bonjour à tous, 

en voulant m'entrainer avec les boucles while, je me trouve fasse à un souci. 

reponse = ""

while reponse != "oui" or reponse != "non":
    reponse = input("Un café ? ")
else:
    print("OK")

si je réponds "oui" ou "non, le programme continue de boucler. et me redemande "Un café". 

Mais si je remplace l'opérateur "or" par "and", le programme se met à fonctionner. 

Il me semblait pourtant que True and False ou bien False and True = False.

Alors qu'avec l'opérateur "or", il suffit d'un seul True dans une condition pour que la condition soit validée ? 

Merci d'avance !
Windows / Chrome 108.0.0.0

2 réponses

Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 931
3 déc. 2022 à 22:12

Bonsoir

tout d'abord, pour poster un code, merci de préciser qu'il s'agit de python, comme décrit là 

https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

Ensuite, je te conseille la lecture d'un cours sur l'algèbre de Bool.

Ca aide beaucoup en développement de savoir de quoi il retourne 

https://www.qwant.com/?client=brz-brave&q=algebre+de+bolo+cours&t=web


0

Bonsoir,

je crois avoir compris, 

Avec l'opérateur or, si la réponse donnée est "oui" ou "non", une des deux conditions devient : False, mais étant donné que l'autre condition reste : True, avec l'opérateur or, l'ensemble reste True. Donc le programme continue à boucler.

Merci pour la réponse en tout cas.  

1
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 931
4 déc. 2022 à 00:23

Certes.

Mais quand tu auras besoin de mélanger des et des ou des ou exclusifs des non etc...

Le feras tu aussi au petit bonheur la chance ?

Comme pour l'algèbre numérique, chaque opération a un résultat spécifique, il y a des priorités et des propriétés.

Connaitre l'algèbre de bool permet d'éviter des déconvenues.


0

Effectivement, j'ai compris quel était le problème en consultant ton lien :) 

Pas en tâtonnant, du coup oui, je me suis mis à la lecture de quelques cours d'algèbre booléenne plus sérieusement.  

Merci encore !

0
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477 > Pythonbegg
Modifié le 4 déc. 2022 à 09:06

bonjour,

Par ailleurs, c'est la même chose en français:

si il ne pleut pas et/ou qu'il ne neige pas.

0