对于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:列表索引超出范围
答案 0 :(得分:0)
请使用一致的缩进,因为else
用于while
,而不是if
,这很可能不是您想要的,而且else: pass
似乎毫无意义。
问题在于while
循环主体使pop()
ping roll
毫无结果,所以您想要:
while roll and roll[0] <= always_keep:
所有多余的括号都是不必要的。