为什么我会收到此消息?
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])
答案 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]实际上是最后一项。