2017-03-09 74 views
1

我一直在嘗試使用Python中的tkinter模塊對計算器進行編程,並且我已經對計算器上的每個數字和符號做了14個函數。例如,以下代碼的編號爲1如何在函數之間傳遞變量?

但是,該程序不會返回值。我使用前面函數中的值作爲參數,但它們似乎沒有經過,我經常得到結果0

變量ab對應於兩個數字,以在計算中使用和num是程序知道何時給數a,並且當把它給b計數器。我曾嘗試在此代碼中插入一個打印件,並且a和b打印正確,但它似乎是返回問題。

任何幫助,將不勝感激。

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

'return num,a,b'? – Dmitry

+0

https://docs.python.org/2.0/ref/return.html只有第一個'return'被評估並且實際返回。所以剩下的2個回報永遠不會被執行。 –

+0

問題是沒有返回的值? – cezaryskrodzki

回答

2

Python函數只返回一個值。當您編寫return a;return b時,您只返回第一個匹配項。

你需要做的,就是收拾這些元素,並返回它們作爲一個元組:

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

你需要記住,到達工作流程的第一return語句使當前的結束函數並返回提供的值。 return a; return b行永遠不會到達,執行流程在第一個return語句後返回給調用者

+0

寫道它返回num,a,b但是1 + 1仍然是0 – cezaryskrodzki

+0

這取決於如何調用該函數,請添加一個示例,因爲輸出取決於您提供的輸入 – Gabrio

0

您可以返回列表,字典,元組,變量。但是函數不能多次返回。您可以嘗試將值插入列表中,然後返回列表。

+0

如何在另一個函數作爲單獨的值,但? – cezaryskrodzki

+0

您可以再次從列表中提取值到變量。像a = your_list [0] –