为什么我的if语句没有停止此索引错误?

时间:2019-08-22 04:31:22

标签: python indexing

对于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:列表索引超出范围

  

1 个答案:

答案 0 :(得分:0)

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

问题在于while循环主体使pop() ping roll毫无结果,所以您想要:

while roll and roll[0] <= always_keep:

所有多余的括号都是不必要的。