簡體   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