2017-05-24 15 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

問題がここに表示されます:あなたはdisplayがグローバルであることを宣言していないので

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

が、これはローカル変数です。それは初期化されていません。あなたが完全なエラーメッセージを含んでいないので、私は100%確実ではありませんが、この行は確かに致命的なエラーを引き起こします。

宣言なしでグローバル変数を参照できますが、その値を変更することはできません。

注:set関数にはaという定義上の問題があります。そのような変数はありません。

関連する問題