我是python的初学者,正在尝试使用Tkinter模块创建一个基本的GUI计算器。我的代码给了我一个错误UnboundLocalError:在赋值之前引用的局部变量'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 :(得分:1)
问题似乎在这里:
def set():
display = display + str(a)
由于您未将display
声明为全局变量,因此这是一个局部变量。它没有初始化。我不是100%肯定,因为你没有包含完整的错误信息,但这一行肯定会引发致命的错误。
您可以在没有声明的情况下引用全局变量,但不能更改其值。
注意:a
函数中的set
也存在定义问题:此处没有此类变量。