我试图对已经由循环填充的数组求和,但我只能调用数组中的最后一个值。
def nots():
global smhx
tilt, lfo = genfromtxt('reso.csv',
unpack=True,
delimiter=',')
for t in xrange(2,5200):
mrt=max(tilt[0:t])
x= 1-((lfo[t-1]-lfo[0])/(mrt-lfo[0]))
results=np.array([x])
smhx=np.sum(results)
print smhx/5200
如果不将数组保存到另一个文件然后在函数外调用它,有人可以建议正确的方法吗?
答案 0 :(得分:0)
你的问题不是很清楚,但我正在回答标题中提到的问题:
要调用函数之外的值,请使用global
,或将其作为参数传递:
使用global
:
>>> global var
>>> var = 8
>>> def foo():
... global var
... var+=1
...
>>> var
8
>>> foo()
>>> foo()
>>> var
10
传递进来:
>>> var = 8
>>> def foo(var):
... var+=1
... return var
...
>>> var
8
>>> for k in range(3):
... var = foo(var)
...
>>> var
11
在你的代码中,一切都很好;您已设置为使用global
。要从另一个函数调用该变量,只需调用:
def foo():
global smhx
#Do whatever you want with smhx
smhx+=500