2016-09-03 5 views
1

У меня была задана задача сделать игру с фруктовыми машинами на питоне, однако я столкнулся с небольшой проблемой, она включает в себя переменную. он говорит, что я ссылался на переменную до ее назначения, хотя я ее назначил. Кажется, он читает его как локальную переменную вместо глобальной переменной. Как это исправить.Нужна помощь в исправлении игры, которую я сделал в Python

Это часть вызывает наибольшие затруднения

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

Вы должны сделать его глобальной переменной, чтобы он действовал как один. Вы бы использовали 'global Credit'. –

ответ

2

Ответ на this question может помочь вам (скопировать вставили ниже).

Если вы хотите просто получить доступ к глобальной переменной, вы просто используете ее имя. Однако для изменения его значения вам нужно использовать ключевое слово global.

E.g.

global someVar 
someVar = 55 

Это изменит значение глобальной переменной до 55. В противном случае было бы просто присвоить 55 локальной переменной.

Порядок определения функций не имеет значения (при условии, что они не относятся друг к другу каким-либо образом), порядок, который они вызывают, делает.

Вы оба читали и изменить значение Credit вам нужно переписать код, в чем-то вдоль линий:

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

В любое время вы хотите записать в глобальную переменную в другой функции в Python, вы должны позволить питон знаю, что вы хотите для использования глобальной переменной. Перед первой линии главной вставки:

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 . 
Смежные вопросы