此消息总是指索引问题? IndexError:索引超出范围

时间:2012-06-03 00:25:11

标签: python numpy

为什么我会收到此消息?

 Traceback (most recent call last):
  File "C:\EclipseWorkspaces\csse120\Lake2\Mainloop2.py", line 46, in <module>

Q[i+1]=Qn(HSR[i],TD[i],FW[i],TempLake[i][0])

IndexError: index out of bounds



Nlayers=23
N=365

HSR=Hsr(rad)
TD=Td(air,neb)
FW=Fw(wind)

def main_loop(Z,z,Areat0,Areat1,TempLake,wind,Q0,Q1):
    n=TempLake.size
    var00=Imp_scheme(Q0,Q1,z,Areat0,Areat1,Z,TempLake,wind)
    var01=fix_profile(n,var00,Areat0)
    return var01

TempLake=np.zeros((N,Nlayers))
TempLake[0]=T0

Q=np.zeros(N)
Q[0]=0.0
for i in xrange(N):
    Q[i+1]=Qn(HSR[i],TD[i],FW[i],TempLake[i][0])
    TempLake[i+1]=main_loop(Z,z,Areat0,Areat1,TempLake[i],wind[i],Q[i],Q[i+1])

2 个答案:

答案 0 :(得分:2)

xrange(N)为您提供从0到N-1的值。您正在向其添加一个,因此您可以在索引1到N处访问Q。但Q只有N个元素,因此N比最高索引N-1多一个。

答案 1 :(得分:0)

在for循环的最后一次迭代中,程序尝试访问Q [i + 1],即Q [N]。 Q的大小为N,但索引从0开始,Q [N-1]实际上是最后一项。