我們在使用函數的過程中通常是調用函數,然後被調用的函數中的內容會依次被執行,但是我們有的時候需要的不只是執行的步驟,我們還需要獲取到函數中的一些變量,因此我們在使用函數的時候還可以增加一個回傳值來取得函數中的一些資料。
Python中關於回傳值需要使用return語句,它的語法結構為:
returndata
我們來舉個例子來了解一下返回值,假如我們要使用函數來求解變數a和變數b的值,然後我們要在主函數中輸出他們的和,我們看一下程式碼:
defget_sum(a,b):sum=a+breturnsumget_sum(1,2)
如果我們把函數寫成上面的模式然後輸出是不會有輸出結果的,因為我們回傳了sum,等同於get_sum(1,2)這一部分的值是sum,但並沒有對它進行操作,如果我們修改一下程式碼:
defget_sum(a,b):sum=a+bprint('呼叫了這個函數')returnsumprint('完成回傳值的傳遞')s=get_sum(1,2)print(s)
輸出結果為:
呼叫了這個函數3
使用這種方式理解一下,在語句s = get_sum(1,2)中,先是呼叫了這個函數,然後函數順序往下執行,到了return語句之後,把函數的值等同於sum,然後返回之後後面的語句就不再執行。回傳值之後s就可以進行賦值運算,把函數的回傳值賦給s,然後輸出就可以看到我們的輸出結果。
我們來看一下示意圖:
我們在使用函數傳回值的時候,有的時候不只會只回傳一個值,也可能要回傳多個值,我們來看多個值的時候該怎麼回傳。
其實我們在傳回多個值的時候原理和一個值的時候類似,我們需要注意的一點是當我們回傳的是多個值的時候,多個值是儲存在元組當中的。
我們來看下面的例子:
defget_data():a=1b=2c=3d=4returna,b,c,dprint('傳回值的型別:',type(get_data()))print('傳回值:',get_data())
輸出結果:
傳回值的型別:<class'tuple'>傳回值:(1,2,3,4)
我們可以看到傳回多個值的時候是被存放在了一個元組之中,存放在了元組之中,我們想要使用這些資料的方式就有很多了。
我們接著上面回傳的資料直接使用,我們可以使用4個變數直接進行定義,
i,o,k,l=get_data()print(i,o,k,l)
輸出結果為:
1234
我們也可以透過循環的方式來列印出回傳值:
foriinget_data():print('這是回傳的第%d個資料'%i)
輸出結果為:
這是回傳的第1個數據這是回傳的第2個數據這是回傳的第3個數據這是回傳的第4個數據
關於返回值就講到這裡,返回值是函數結構中十分重要,本節中以簡單的例子來介紹了函數的返回值,大家在後續的學習中要加強對返回值的使用。