2017-05-24 126 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也有定義問題:這裏沒有這樣的變量。

相關問題