1. 程式人生 > 其它 >大爽Python入門教程 4-2 函式返回值 return

大爽Python入門教程 4-2 函式返回值 return

大爽Python入門公開課教案 點選檢視教程總目錄

1 情景思考

上面的函式calculate_sum是把計算的結果,
直接在函式中通過print輸出了出來。

有的時候我們可能希望把結果拿出來,在函式外面來輸出。

更有時候,我們需要使用結果中的值,做一些額外的計算。
比如這裡想額外計算,
n=10, 100, 1000, 10000, 100000時,不同S之間的差值(絕對值)。

這個時候,就需要一種機制。
將函式執行完的資料拿出來,拿到函式外面來使用。

2 使用return

把函式中的結果拿出來,
一般使用return語句,此時叫把結果返回出來,這個結果又叫做返回值。

修改calculate_sumget_sum函式,將結果返回出來。
其程式碼如下

def get_sum(n):
    k = 1
    s = 0
    for i in range(n):
        s += k / (i + 1)
        k = -k

    return s

而此時呼叫時,要得到返回值,需要用一個變數來接住。
其呼叫程式碼示例:

s1 = get_sum(100)

此時s1就把函式中,執行完後的s的值拿到了。

3 return說明

return語句,是函式的返回語句,執行到這裡函式直接終止並返回return後結果。

return可以返回多個結果,此時會打包成元組返回。
示例如下

def cal_sum_and_diff(a, b):
    s = a + b
    d = a - b
    return s, d  # same as return (s, d)

此時接收返回值可以用一個變數接收,也可以用對應個數個變數去接收。

sd = cal_sum_and_diff(10, 5)  # sd: (15, 5)
s, d = cal_sum_and_diff(10, 5)
# s:15 , d: 5

不寫return,函式預設返回None(空值)。

從某種角度來講,
函式可以看作是能計算出結果的表示式,
所以可以將其賦值給變數。

(當然,不賦值僅呼叫,函式也能執行。)

如果是在互動式命令列中,不賦值僅呼叫函式,
互動式命令列會自動將函式返回值展示出來。
(如果返回值為None,互動式命令列就不展示)

4 None說明

None是空值,是一種特殊的資料型別。
其布林值為False


一般條件判斷語句中,判斷一個變數是否為None
可以使用==,

if a == None:
    ...

但更推薦使用is

if a is None:
    ...

最終程式碼

def get_sum(n):
    k = 1
    s = 0
    for i in range(n):
        s += k / (i + 1)
        k = -k

    return s

s0 = get_sum(10)
s1 = get_sum(100)
s2 = get_sum(1000)
s3 = get_sum(10000)

print("10->100    : %s" % (s1-s0))
print("100->1000  : %s" % (s2-s1))
print("1000->10000: %s" % (s3-s2))

輸出如下

10->100    : 0.04253725867527436
100->1000  : 0.004475251249627221
1000->10000: 0.00044975250013601364