此消息总是指索引问题?索引器错误:索引超出界限

2024-10-01 13:38:55 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么我要收到这个信息?

 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])

Tags: inloopmaintdwindqnfwq1
2条回答

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

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

相关问题 更多 >