【问题标题】:Regarding Index out of range error关于索引超出范围错误
【发布时间】:2016-09-08 04:48:31
【问题描述】:
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

【问题讨论】:

  • 如果您有for i in range(1,len(n)+1),那么您的i 会超出n 的末尾,因此随后对n[i] 的调用将引发异常。
  • Python 列表是零索引的。对于 n 元素列表,第一个元素的索引为 0,最后一个元素的索引为 n-1。您正在尝试访问索引 1、2、... n - 最后一个索引不存在。

标签: python indexing


【解决方案1】:

i=len(n)n[i] 确实会引发 IndexError。您需要调整第一个范围:

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

【讨论】:

    【解决方案2】:

    数组索引从 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      • 1970-01-01
      • 2014-03-02
      相关资源
      最近更新 更多