2017-03-09 5 views
1

Ich habe versucht, einen Taschenrechner mit dem Tkinter-Modul in Python zu programmieren, und ich habe 14 Funktionen entsprechend jeder Zahl und Symbol auf dem Rechner gemacht. Der folgende Code ist zum Beispiel für die Nummer 1.Wie übertrage ich Variablen zwischen Funktionen?

Das Programm gibt die Werte jedoch nicht wie gewünscht zurück. Ich benutze die Werte von der vorherigen Funktion in weiteren Funktionen als Parameter, aber sie scheinen nicht durchzugehen und ich bekomme ständig das Ergebnis 0.

Die Variablen a und b entsprechen zwei Zahlen in der Berechnung verwendet werden und num ist ein Zähler für das Programm zu wissen, wann die Nummer a und wann gibt es b zu geben. Ich habe versucht, einen Druck in diesem Code einzufügen und a und b druckten korrekt, aber es scheint ein Problem mit der Rückkehr zu sein.

Jede Hilfe wäre willkommen.

def num1(num,a,b): 
    if num == 0: 
     a=a+1 
     num=num+1 
    elif num == 1: 
     b=b+1 
    return num 
    return a 
    return b 
+2

'Rückkehr num, a, b'? – Dmitry

+0

https://docs.python.org/2.0/ref/return.html Nur der erste 'return' wird ausgewertet und tatsächlich" zurückgegeben ". Die verbleibenden 2 Returns werden also nie ausgeführt. –

+0

Das Problem ist keiner der Werte zurückgegeben werden? – cezaryskrodzki

Antwort

2

Python-Funktion gibt nur einen Wert zurück. Wenn Sie return a;return b schreiben, geben Sie nur das erste Vorkommen zurück.

Was Sie tun müssen, ist, diese Elemente packen und sie als ein Tupel zurück:

def num1(num,a,b): 
    if num == 0: 
     a=a+1 
     num=num+1 
    elif num == 1: 
     b=b+1 
    return num, a, b 
1

Sie im Auge behalten müssen, dass die erste return Anweisung, die den Arbeitsablauf bewirkt, dass das Ende der aktuellen erreicht Funktion und gibt den gelieferten Wert zurück. die return a; return b Linien nie erreicht werden, der Ausführungsablauf kehrt zu dem Anrufer nach der ersten return Anweisung

+0

Hat den Weg geschrieben Return num, a, b jedoch 1 + 1 ist immer noch 0 – cezaryskrodzki

+0

hängt davon ab, wie die Funktion aufgerufen wird, fügen Sie bitte ein Beispiel hinzu, da die Ausgabe von dem von Ihnen gelieferten Eingang abhängt – Gabrio

0

Sie können eine Liste zurück, Wörterbuch, Tupel, variabel. Eine Funktion kann jedoch nicht mehrfach zurückgegeben werden. Sie können versuchen, die Werte in eine Liste einzufügen und dann die Liste zurückzugeben.

+0

Wie würde ich es in einem anderen verwenden Funktion als separate Werte obwohl? – cezaryskrodzki

+0

können Sie erneut Werte aus der Liste in Variablen extrahieren. wie a = deine_liste [0] –

Verwandte Themen