2016-05-12 110 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) 

這裏,我得到一個錯誤在該行for j in range(1,n[i]): 當它是i-1它的工作原理,但需要的是i關於指數超出範圍錯誤

+0

如果你有'爲我的range(1,LEN(N)+1)'你有'i'超過'n'的末尾,所以隨後調用'n [i]'會引發異常。 – khelwood

+1

Python列表是零索引的。對於n元素列表,第一個元素具有索引0,並且最後具有索引n-1。您正嘗試訪問索引1,2,... n - 最後一個索引不存在。 –

回答

0

i=len(n),n[i]確實會引發IndexError。您需要調整第一範圍:

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

數組索引從0開始,所以你應該做的:

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)