2017-05-24 73 views
0

我是python的初学者,并试图用Tkinter模块创建一个基本的GUI计算器。我的代码给了我一个错误UnboundLocalError:在赋值之前引用的局部变量'display',即使我已经在代码的开头将值赋给了变量。这里是我的代码,任何帮助将被appriciated。UnboundLocalError:在python中赋值之前引用的局部变量'display'

display = "" 
flag = 0 

def set(): 
    display = display + str(a) 
    if flag == 0: 
     calc1 = float(display) 
    elif flag == 1: 
     calc2 = float(display[len(str(calc1)) - 1:END]) 
    label.config(text = display) 
    print (calc1) 
    print (calc2) 
    print (display) 

def set0(): 
    a=0 
    set() 

# similar functions for values 1-9 

set0() 
+0

欢迎来到StackOverflow。请阅读并遵守帮助文档中的发布准则。 [最小,完整,可验证的示例](http://stackoverflow.com/help/mcve)适用于此处。在发布您的MCVE代码并准确描述问题之前,我们无法为您提供有效的帮助。 – Prune

回答

1

的问题似乎是在这里:

def set(): 
    display = display + str(a) 

既然你没有申报display是全球性的,这是一个局部变量。它未初始化。我不是100%确定的,因为你没有包含完整的错误信息,但是这行肯定会引发一个致命的错误。

您可以在没有声明的情况下引用全局变量,但不能更改其值。

注意:set函数中的a也有定义问题:这里没有这样的变量。

相关问题