我已经设置了一个在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 :(得分: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
答案 1 :(得分:0)
任何时候你想在python的另一个函数中写一个全局变量,你应该让python知道你想要使用全局变量。在第一行主插页之前:
global Credit
答案 2 :(得分: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 .