Comportement étrange dans une boucle...

Fargaroth -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai créer un script python qui simule un tirage de jeu d'argent, il fonctionne mais d'une manière bizarre... en effet dans une de mes boucles, le résultat attendu de "or" et "and" sont inversé!!!

Voici ma ligne de code :
while numeroJoue - tirageNumero != set() or etoileJoue - tirageEtoile != set():

Pour que mon programme sorte de la boucle avec "or", il faut que les 2 conditions soi verifier, alors que si je remplace par "and", avec une seule condition verifier mon programme sort de la boucle!!!

Ca devrait être l'inverse non?

Merci

Configuration: Linux / Chrome 88.0.4324.182

2 réponses

jee pee Messages postés 41520 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
Salut,

Il faut étudier les lois de Morgan : https://fr.wikipedia.org/wiki/Lois_de_De_Morgan

https://en.wikipedia.org/wiki/De_Morgan%27s_laws

    not (A or B)  = not A and not B
not (A and B) = not A or not B


1
Fargaroth
 
Entendu je crois avoir pigé!

Merci a toi pour cette réponse ultra rapide!
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
bonjour, exactement comme en français!
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Ah le fameux théorème de De Morgan !

Moi, j'ai vu ça en automatismes, en 1974 ou 1975 ...

Effectivement lorsque je cherche le else d'un test du style

if(a==1 and b!=0):


j'inverse tout:

if(a!=1 or b==0):
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
il fait beau et je suis en vacances

devient, en négatif:
il ne fait pas beau ou je ne suis pas en vacances


le fameux théorème du bon sens?
0