我正在编写一个比较两个玩家之间的硬币翻转的程序。我无法弄清楚为什么下面的while循环打印“Game Over”,即使两个列表的len都是5.当我通过输入len(player_x_army)来检查len时,它会以正确的5响应。如果我改变了“或”到“和”它工作正常。任何帮助都会很棒。
while len(player_1_army) or len(player_2_army) == 0:
print("Game Over")
答案 0 :(得分:0)
len(player_1_army)
不是零。因此,OR
中的第一个交替返回true。因此执行while
循环。
在任何布尔表达式中,如果存在number
,则会将其评估为number != 0
。
相反,你需要:
len(player_1_army) == 0 or len(player_2_army) == 0