web-dev-qa-db-ja.com

複数の条件でwhileループを行う方法

私はPythonでwhileループを持っています

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

'
'

これらの条件がすべて当てはまる場合、上記のコードが機能しないときにループを抜け出したい

私はもともと持っていた

while True:
      if condition1==True and condition2==True and val!=-1:
         break

大丈夫、これはこれを行うための最良の方法ですか?

ありがとう

17
mikip

andsをorsに変更します。

while not condition1 or not condition2 or val == -1:

しかし、while Trueの内部でifを使用するというオリジナルには何も問題はありませんでした。

2
user97370

投稿したコードで、condition2Falseに設定されることはありませんか?この方法では、ループ本体は実行されません。

また、Pythonではnot conditioncondition == False;同様に、conditioncondition == True

1
tzot
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
0
MIIK7