[英]Why Isn't My If Statement Stopping This Index Error?
一般而言,对 Python 和编程非常陌生,我不断收到此索引错误,但无法弄清楚原因。
我正在尝试构建一个骰子游戏的基本模拟,我尝试添加 if 语句和 while 循环来实现它,因此如果列表为空,它就不会尝试追加内容
if dice > 0:
if 0 <= (len(roll)):
while roll [0] <= (always_keep):
keeps.append(roll.pop(0))
else:
pass
if (len(roll)) == (dice):
keeps.append(roll.pop(0))
dice = (dice - 1)
else:
pass
第 106 行,在
while roll [0] <= (always_keep):
IndexError:列表索引超出范围
请使用一致的缩进,因为else
是while
, while
不是if
,这很可能不是您想要的,并且else: pass
无论如何似乎毫无意义。
问题是while
循环体使pop()
ping roll
一无所有,因此您需要:
while roll and roll[0] <= always_keep:
所有额外的括号都是不必要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.