为什么我的if语句不能阻止这个索引错误?

2024-06-16 09:54:54 发布

您现在位置:Python中文网/ 问答频道 /正文

对于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: list index out of range


Tags: lenif编程错误passdicealwayspop
1条回答
网友
1楼 · 发布于 2024-06-16 09:54:54

请使用一致的缩进,因为您的else用于while,而不是if,这很可能不是您想要的,而且else: pass看起来毫无意义

问题是while循环体将pop()pingroll保持为零,因此需要:

while roll and roll[0] <= always_keep:

所有额外的括号都是不必要的

相关问题 更多 >