代码之家  ›  专栏  ›  技术社区  ›  Schneider

索引超出范围Python NUmerical迭代

  •  0
  • Schneider  · 技术社区  · 10 年前

    我是Python初学者。在运行以下代码时。

    from array import *  
    x=[]  
    x[0]=.232  
    for i in range(25):   
    x[i+1]=1/[i+1]-5*x[i] 
    end
    

    我收到一个错误:

    x[0]=。232 IndexError:列表分配索引超出范围

    有人能帮我整理一下吗

    2 回复  |  直到 10 年前
        1
  •  1
  •   shuttle87 Bhargav Boda    10 年前

    您的代码有更多错误,但在这种情况下,您试图访问第一个位置( x[0] )空数组的( 声明为 x=[] )

    循环中出现相同的错误( x[i+1] 由于数组为空,索引超出范围 )你有语法错误, end 不是python关键字。最后,循环的主体应该缩进。

        2
  •  0
  •   Eular    10 年前

    x=[]生成一个空列表,因此您无法调用x[0],因此为了方便,请列出26个元素(总共需要26个元素),所有元素都等于零,

     x=[0.0]*26
    

    x=[0.0 for i in range(26)]
    

    再一次 [i+1] 表示一个列表,您无法使用该make(i+1)进行计算。而且 1/(i+1) 整数除法为1.0/(i+1) end 此处不是有效的python函数,请不要在for循环下使用它缩进下一行。最终方案,

    x=[0.0]*26  
    x[0]=.232  
    for i in range(25):   
        x[i+1]=1.0/(i+1)-5*x[i]