Comportement étrange dans une boucle...
Fargaroth
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 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
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
-
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
-
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):