2016-08-03 74 views
-1

我在Python代碼的一點經驗,我試着寫總結在列表中的項目,除了數字99碼這是我的代碼:While循環澄清python-錯誤

grade = [100,30,99,85] 
i = 0 
while grade[i]!=99: 
    i = i + grade[i] 
print i 

但我得到這個錯誤:

>>> 
100 

Traceback (most recent call last): 
    File "G:\desktop\test.py", line 3, in <module> 
while grade[i]!=99: 
IndexError: list index out of range 
>>> 

回答

1
  1. 好像要初始化io而不是數量0。 (編輯:OP更新的問題)

  2. 你有一個清單,並 列表中的一個元素的索引之間的差一些誤解。在第一次迭代中,您將i設置爲等於100i + grade[i]0 + 100)。因此,在第二次迭代中,您嘗試訪問grade的第100個索引,這顯然不存在,並且IndexError正在提出。

  3. 考慮使用更簡單的方法Python的內置sum

    grade = [100,30,99,85] 
    sum_grade = sum(num for num in grade if num != 99) 
    print(sum_grade) 
    >> 215 
    
+0

請解釋一下你的第二個音符 – newGIS

+0

@newGIS增加了一個解釋。 – DeepSpace

+0

那麼,我怎麼能在我的代碼中做到這一點,而不是使用sum函數? – newGIS