[英]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:列表索引超出范圍
請使用一致的縮進,因為else
是while
, while
不是if
,這很可能不是您想要的,並且else: pass
無論如何似乎毫無意義。
問題是while
循環體使pop()
ping roll
一無所有,因此您需要:
while roll and roll[0] <= always_keep:
所有額外的括號都是不必要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.