2017-05-24 3 views
0

Ich bin ein Anfänger in Python und versuchte, einen grundlegenden GUI-Rechner mit Tkinter-Modul zu erstellen. Mein Code gibt mir einen Fehler UnboundLocalError: lokale Variable "Anzeige" verwiesen vor der Zuweisung, auch wenn ich den Wert der Variablen am Anfang des Codes zugewiesen haben. Hier ist mein Code, jede Hilfe wird geschätzt.UnboundLocalError: lokale Variable 'display' referenziert vor der Zuweisung in Python

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

Willkommen bei StackOverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [Minimales, vollständiges, überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) gilt hier. Wir können Ihnen nicht effektiv helfen, bis Sie Ihren MCVE-Code veröffentlicht und das Problem genau beschrieben haben. – Prune

Antwort

1

Das Problem scheint hier zu sein:

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

Da Sie nicht display global sein musste erklären, ist dies eine lokale Variable ist. Es ist nicht initialisiert. Ich bin nicht 100% sicher, da Sie die vollständige Fehlermeldung nicht angegeben haben, aber diese Zeile wird sicherlich einen schwerwiegenden Fehler auslösen.

Sie können auf eine globale Variable ohne die Deklaration verweisen, aber Sie können ihren Wert nicht ändern.

Hinweis: Sie haben auch ein Definitionsproblem mit a in der set Funktion: Es gibt keine solche Variable hier.

Verwandte Themen