Python 此消息总是指索引问题?索引器:索引超出范围
为什么我会收到这个消息Python 此消息总是指索引问题?索引器:索引超出范围,python,numpy,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=T
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])
回溯(最近一次呼叫最后一次):
文件“C:\EclipseWorkspace\csse120\Lake2\Mainloop2.py”,第46行,在
Q[i+1]=Qn(高铁[i]、TD[i]、FW[i]、模板[i][0])
索引器:索引超出范围
Nlayers=23
N=365
高铁=高铁(rad)
TD=TD(空气,neb)
FW=FW(风)
def主回路(Z、Z、区域T0、区域T1、模板、风、Q0、Q1):
n=模板大小
var00=Imp_方案(Q0、Q1、z、区域T0、区域T1、z、模板、风)
var01=固定配置文件(n,var00,区域T0)
返回var01
TempLake=np.0((N,N层))
模板[0]=T0
Q=np.零(N)
Q[0]=0.0
对于x范围内的i(N):
Q[i+1]=Qn(高铁[i]、TD[i]、FW[i]、模板[i][0])
TempLake[i+1]=主回路(Z、Z、区域T0、区域T1、TempLake[i]、风[i]、Q[i]、Q[i+1])
在for循环的最后一次迭代中,程序尝试访问Q[i+1],即Q[N]。Q的大小是N,但索引从0开始,Q[N-1]实际上是最后一项。xrange(N)
提供从0到N-1的值。您正在向其中添加一个,因此您可以在索引1到N处访问Q
。但是Q
只有N个元素,因此N比最高索引N-1多一个。+1表示描述性变量和易于理解的代码:)