While et opérateurs or et and

Résolu
Pythonbegg -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -

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

A voir également:

2 réponses

Utilisateur anonyme
 

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
Pythonbegg
 

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
Utilisateur anonyme
 

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
Pythonbegg
 

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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Pythonbegg
 

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