2016-09-03 3 views
1

저는 과일 기계 게임을 파이썬으로 만들기위한 작업을했지만, 작은 문제에 직면했습니다. 변수가 포함되어 있습니다. 할당하기 전에 변수를 참조했음을 말합니다. 할당 한 경우에도 마찬가지입니다. 글로벌 변수 대신 로컬 변수로 읽는 것 같습니다. 어떻게 수정해야합니까? 파이썬으로 만든 게임을 고치는 데 도움이 필요합니다

가장 문제가 당신이 파이썬에서 다른 함수에서 전역 변수에 기록 할

Credit = 1 

def main(): #the main program 
    Credit = Credit - 0.20 
    print("Credit remaining = " + Credit) #tells the player the amount of credit remaining 
    print("\n *** The Wheel Spins... *** \n") #Spinning the wheel 
    print(input("\n (press enter to continue) \n")) 

오류 메시지

line 19, in main 
    Credit = Credit - 0.20 
UnboundLocalError: local variable 'Credit' referenced before assignment 
+0

실제 오류 메시지를 포함하십시오. –

+0

오류 메시지 – Ben

+0

을 추가했습니다.이 코드를 전역 변수로 만들어야 만 하나처럼 작동 할 수 있습니다. 당신은'글로벌 크레딧'을 사용할 것입니다. –

답변

2

this question에 대한 대답은 당신을 (아래 복사 - 붙여 넣기) 도움이 될 수 있습니다.

전역 변수에 액세스하려면 해당 이름을 사용하면됩니다. 그러나 값을 변경하려면 global 키워드를 사용해야합니다.

예.

global someVar 
someVar = 55 

그렇지 않으면 그냥 로컬 변수에 55을 할당합니다 (55)에 글로벌 변수의 값을 변경합니다.

함수 정의 목록의 순서는 중요하지 않습니다 (함수가 서로를 참조하지 않는다고 가정 할 때). 호출 순서는 같습니다.

당신 모두 을 읽고 당신의 라인을 따라 무언가로 코드를 다시 작성할 필요 Credit의 값 변경 : 당신은 당신의 변수를 선언하지 않는

def main(): #the main program(edited) 
    global Credit 
    Credit = Credit - 0.20 
0

언제가 발생하는 부분입니다, 당신은 파이썬이 원하는 알려야합니다 전역 변수를 사용합니다. 주요 삽입의 첫 번째 행하기 전에

global Credit 
0

합니다. 함수 외부에서 선언 된 변수는 함수로 작동하지 않습니다. 해당 변수를 사용하려면이 경우 전역 변수로 대변을 기입해야합니다. 그리고 모든 것이 잘 될 수 있습니다. 최선.

x = something #declearing a local variable 
def something(): 
    global x # setting local x variable as global variable, so x can be use into as well as outside of the function 
    print x 
    #or do something u like .