2016-08-03 70 views
-1

ich ein wenig Erfahrung in Python-Codierung haben und ich versuche, einen Code zu schreiben, der die Elemente in der Liste mit Ausnahme der Zahl summieren 99. Dies ist mein Code:While-Schleife Klärung in python Fehler

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

aber ich bekomme diese Fehlermeldung:

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

Antwort

1
  1. Scheint, wie Sie i den Buchstaben o und nicht auf die Anzahl 0 initialisiert wird. (EDIT: OP aktualisiert die Frage)

  2. Sie haben einige Missverständnisse über den Unterschied zwischen einem Index in einer Liste und ein Element in der Liste. In der ersten Iteration setzen Sie i gleich 100 (i + grade[i] ist 0 + 100). Als Ergebnis versuchen Sie in der zweiten Iteration auf den 100. Index von grade zuzugreifen, der offensichtlich nicht existiert und IndexError ausgelöst wird.

  3. Betrachten wir einen viel einfacheren Ansatz mit Python eingebauten in sum:

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

bitte Ihre zweite Note – newGIS

+0

@newGIS erklären eine Erklärung gegeben. – DeepSpace

+0

also, wie kann ich es in meinem Code tun, nicht mit der Summenfunktion? – newGIS