大爽Python入門公開課教案 點擊查看教程總目錄
1 情景思考
上面的函數calculate_sum是把計算的結果,
直接在函數中通過print輸出了出來。
有的時候我們可能希望把結果拿出來,在函數外面來輸出。
更有時候,我們需要使用結果中的值,做一些額外的計算。
比如這里想額外計算,
n=10, 100, 1000, 10000, 100000時,不同S之間的差值(絕對值)。
這個時候,就需要一種機制。
將函數執行完的數據拿出來,拿到函數外面來使用。
2 使用return
把函數中的結果拿出來,
一般使用return語句,此時叫把結果返回出來,這個結果又叫做返回值。
修改calculate_sum為get_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
