如何在循环结束后将Q数组写入excel?或者如何在循环结束后查看存储在Q中的数据?
Nlayers=23
N=365
def main_loop(Z,z,Areat0,Areat1,TempLake,i,HSR,TD,FW,wind):
Q=np.zeros(len(rad))
Q[0]=0
Q[i+1]=Qn(HSR,TD,FW,TempLake[0])
Q0=Q[i]
Q1=Q[i+1]
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
for i in xrange(N-1):
TempLake[i+1]=main_loop(Z,z,Areat0,Areat1,TempLake[i],i,HSR[i],TD[i],FW[i],wind[i])
答案 0 :(得分:1)
简短的回答是,你不能没有a)返回它,b)传递它并修改它,或c)将它声明为全局或等同物。在大多数情况下,a
是最好的。在函数的最后一行,您可以这样做:
return var01, Q
在主for
循环中:
for i in xrange(N-1):
result, Q = main_loop(...)
TempLake[i + 1] = result
do_something_with(Q)
但这是一个相当尴尬的设计,因为你返回Q
N
次,但只使用一次。可能有一个更好的方法,但我无法从你的示例代码中看出你真正在做什么,所以我无法弄清楚它可能是什么。