2016-05-12 14 views
-3
def sum_squares(n): 
    sum=0 

    for i in range(1,len(n)+1): 
     sum=0 

     for j in range(1,n[i]): 
      sum+=j**2 

     print('The sum:',sum) 
n=[2] 
sum_squares(n) 

Hier bin ich einen Fehler in der Leitung immer for j in range(1,n[i]): Wenn es i-1 ist es funktioniert, aber was benötigt wird, ist i.Index Fehler außerhalb des Bereichs Bezug

+0

Wenn Sie 'für i in Reichweite haben (1, len (n) + 1)' Sie haben "ich" über das Ende von "n" hinaus, so dass der nachfolgende Aufruf von "n [i]" eine Ausnahme auslösen wird. – khelwood

+1

Python-Listen sind null-indiziert. Für die N-Element-Liste hat das erste Element den Index 0 und der letzte den Index n-1. Sie versuchen auf die Indizes 1, 2, ... n zuzugreifen - der letzte Index fehlt. –

Antwort

0

Wenn i=len(n), wird n[i] tatsächlich einen IndexError auslösen. Sie müssen den ersten Bereich einzustellen:

for i in range(0, len(n)): 
0

Array-Indizes bei 0 beginnen, so sollten Sie tun:

def sum_squares(n): 
    sum=0 

    for i in range(0,len(n)): 
     sum=0 

     for j in range(1,n[i]): 
      sum+=j**2 

     print('The sum:',sum) 
n=[2] 
sum_squares(n) 
Verwandte Themen