2014-07-27 89 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