Python 为什么不是';我的If语句是否停止此索引错误?

Python 为什么不是';我的If语句是否停止此索引错误?,python,indexing,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(r

对于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
如果骰子>0:

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

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

while roll and roll[0] <= always_keep:

边滚边滚[0]什么是
?请把全部代码都贴出来。