2014-04-30 54 views
0

我試圖總結已填充循環的數組,但我只能調用數組中的最後一個值。sum數組內循環,並將其稱爲功能之外

高清窮人():

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

你的問題不是很清楚,但我回答什麼問標題:

要調用值的功能外,使用global,或者把它作爲一個參數:

>>> var = 8 
>>> def foo(var): 
...  var+=1 
...  return var 
... 
>>> var 
8 
>>> for k in range(3): 
...  var = foo(var) 
... 
>>> var 
11 

使用global:在

>>> global var 
>>> var = 8 
>>> def foo(): 
...  global var 
...  var+=1 
... 
>>> var 
8 
>>> foo() 
>>> foo() 
>>> var 
10 

傳遞

在你的代碼中,一切都很好;您設置爲使用global。要從另一個函數調用該變量,只需調用:

def foo(): 
    global smhx 
    #Do whatever you want with smhx 
    smhx+=500 
+0

smhx變成只是一個值。該值是5200記錄數組中的最後一個值,而不是它們的總和。我理解全局變量,但我不明白爲什麼我只獲取數組中的最後一個值,而不是5200條記錄的總和。 – user3439187

+0

現在,當我嘗試將它寫入CSV時,它將其寫入中文? – user3439187

相關問題