J'ai une boucle while en python
condition1=False
condition1=False
val = -1
while condition1==False and condition2==False and val==-1:
val,something1,something2 = getstuff()
if something1==10:
condition1 = True
if something2==20:
condition2 = True
'
'
Je veux sortir de la boucle lorsque toutes ces conditions sont remplies, le code ci-dessus ne fonctionne pas
J'avais à l'origine
while True:
if condition1==True and condition2==True and val!=-1:
break
qui fonctionne bien, est-ce la meilleure façon de faire cela?
Merci
Remplacez and
s par or
s.
while not condition1 or not condition2 or val == -1:
Mais il n’y avait aucun problème avec votre original d’utiliser un si dans un temps vrai.
Avez-vous remarqué que, dans le code que vous avez publié, condition2
n'est jamais défini sur False
? De cette façon, votre corps de boucle n'est jamais exécuté.
Notez également qu'en Python, not condition
est préféré à condition == False
; De même, condition
est préféré à condition == True
.
condition1 = False
condition2 = False
val = -1
#here is the function getstuff is not defined, i hope you define it before
#calling it into while loop code
while condition1 and condition2 is False and val == -1:
#as you can see above , we can write that in a simplified syntax.
val,something1,something2 = getstuff()
if something1 == 10:
condition1 = True
Elif something2 == 20:
# here you don't have to use "if" over and over, if have to then write "Elif" instead
condition2 = True
# ihope it can be helpfull