大爽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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM