2014-07-11 4 views
-4

저는 파이썬을 처음 접했고, 잠시 동안 저를 괴롭혔습니다. 어떤 도움이라도 대단히 감사 할 것입니다! 증가하는 숫자의 목록을 작성하고 싶습니다. (나는 이것을하는 더 쉬운 방법을 안다. 그러나 이것은 더 간단한 방법을 사용할 수없는 다른 코드에서의 문제의 단순화 된 예이다.)파이썬 전역 변수

코드;

increase = 0 

def adder(number): 

    number+=1 
    return number 

while True: 
    adder(increase) 
    print(increase) 
+0

왜 지능 또는 'for' 루프를 사용하지 않습니까? – IanAuld

+0

매개 변수의 값을 변경하여 나중에 함수에서 새 값을 다시 호출 할 수있게하려고합니다. 그걸로 전 지구적인 도움을 재 할당하겠습니까? 그렇다면 어떻게해야합니까? 고맙습니다! –

답변

1

반환 값은 사용하지 마십시오.

increase = adder(increase) 
+0

대단히 감사합니다! 그걸 수정 한 것 같습니다! –

2

당신이 number를 재 할당보다는 가치를 기존있어 수정하는

number += 1 

당신이 말할 때. 당신이

number = number + 1 

을했던 것처럼 전역을 수정하려는 경우 당신은 또한 가산기 기능 A를 단순화 할 수 있습니다이 시점에서 기능

increase = adder(increase) 

를 호출 할 때 다시 보관해야합니다,의 비트

def adder(number): 
    return number + 1 

그러나 글로벌 기능을 원하는대로 수정하려면 명시 적으로 변경해야합니다. 그러나 이것이 당신이 원한 것이라면 프로그램을 다시 생각해보아야합니다 :

increase = 0 

def adder(): 
    global increase 
    increase += 1 

while True: 
    adder() 
    print(increase) 
+1

당신은 글로벌을 수정하는 기능을 원하지만 아마도 이것을 원하지 않을 것입니다. –

+0

@ 2 BitAlchemist가 동의했습니다. –