2016-08-03 73 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