繁体   English   中英

为什么我的 If 语句没有停止这个索引错误?

[英]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:列表索引超出范围

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

问题是while循环体使pop() ping roll一无所有,因此您需要:

while roll and roll[0] <= always_keep:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM