2014-04-30 3 views
0

저는 루프에 의해 채워진 배열을 합산하려하지만 배열의 마지막 값만 호출 할 수 있습니다.for 루프 내에서 합계 배열을 배열하고 함수 외부에서 호출하십시오.

데프 못한 자()

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을 사용하거나 매개 변수로에 통과하려면 :

global 사용 :

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

>>> 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

관련 문제