2014-07-27 84 views
-2

我正在編寫一個程序,比較兩個玩家之間的硬幣翻轉。我無法弄清楚爲什麼下面的while循環打印出「遊戲結束」,即使這兩個列表的len都是5.當我通過輸入len(player_x_army)來檢查len時,它以正確的5響應。如果我改變「或」to「和」它工作正常。任何幫助都會很棒。while while循環中的列表長度

while len(player_1_army) or len(player_2_army) == 0: 
    print("Game Over") 
+1

'LEN(player_1_army)== 0' – simonzack

+1

或'不player_1_army';空序列在布爾上下文中評估「False」。目前還不清楚爲什麼這是一個「while」循環。如果它內部只有一條線將永遠不會結束。 – jonrsharpe

回答

0

len(player_1_army)不爲零。因此,OR中的第一個更改返回true。因此執行了while循環。

在任何布爾表達式中,如果存在number,則評估爲number != 0

相反,你將需要:

len(player_1_army) == 0 or len(player_2_army) == 0