2016-02-22 61 views
1

我有一個變量player_answer,我想打破while循環時player_answer等於「是」或「是」。如何在while循環中添加更多條件?

代碼:

while player_answer != "yes" ((OR)) "yea": 

      *CODE BLOCK* 
+1

'而player_answer沒有[ 「是的」, 「是啊」]:' –

+1

的可能的複製[複雜,如果在python聲明】( http://stackoverflow.com/questions/2493404/complex-if-statement-in-python) – Prune

+0

@prune應該很好,因爲這結合了不同的答案 –

回答

2

如果你想使用兩個子句可以使用and/or爲蟒蛇複合邏輯值。

while not (player_answer == "yes" or player_answer == "yea"): 
    <INSERT CODE> 

但是,要小心,因爲容易混淆,因爲複合子句的否定不像上面描述的那麼簡單。具體來說,我寫的化合物是相當於

# DON'T DO THIS; THIS ILLUSTRATES A COMMON LOGICAL MISTAKE 
while player_answer != "yes" or player_answer != "yea": 
    <INSERT CODE> 

欲瞭解更多信息,請查閱DeMorgan's Laws

更好的解決方案是@DeveloperXY註釋中的一個:

while player_answer not in ["yes", "yeah"]: 
    <INSERT CODE> 
+0

第二個代碼示例不適合我,我試着在問之前使用它,我試圖用簡單的邏輯。但是第一個和第三個例子完美無缺地工作。謝謝 – nizhabib

+0

第二個例子是爲了突出錯誤的方式來做到這一點。我會更清楚地說明。 –