需要帮助修复我用Python制作的游戏

时间:2016-09-03 16:24:44

标签: python pygame global-variables local-variables

我已经设置了一个在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

3 个答案:

答案 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 .