回傳值 (return value) 是函數 (function) 或方法 (method) 回傳給呼叫方的數值,基本上是利用關鍵字 (keyword) return 回傳。
沒有用 return 回傳數值的函數,預設回傳 None ,如此例函數 f1() 回傳 None , None 就是表示什麼都沒有的物件 (object)
def f1():
pass
a = f1()
print(a)
print(type(a))
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:returnvalue01.py
# 功能:示範回傳值定義
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 returnvalue01.py |
None |
<class 'NoneType'> |
$ |
函數或方法可以回傳任意型態的物件,此例函數 f2() 回傳的是計算結果,也就是 1 到 100 所有正整數的總和
def f2():
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
return sum
a = f2()
print(a)
print(type(a))
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:returnvalue02.py
# 功能:示範回傳值定義
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 returnvalue02.py |
5050 |
<class 'int'> |
$ |
函數依需要可以回傳不同的數值,此例函數 f3() 有兩個 return 陳述,由 if 後的條件判斷執行哪一個 return 陳述,由於條件 (condition) 為真,因此會執行 return 10 ,所以只要呼叫 f3() , else 的部分,也就是 return "hello" 永遠不會執行
def f3():
if 1:
return 10
else:
return "hello"
a = f3()
print(a)
print(type(a))
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:returnvalue03.py
# 功能:示範回傳值定義
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 returnvalue03.py |
10 |
<class 'int'> |
$ |
函數預設只能回傳一個數值,但 return 後可用逗號接多個數值,此時回傳單一數值的型態為序對 (tuple) ,因此可由序對取出以逗號間隔的每個數值
def f4():
return 10, "hello"
a = f4()
b, c = f4()
print(a)
print(type(a))
print(b)
print(type(b))
print(c)
print(type(c))
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:returnvalue04.py
# 功能:示範回傳值定義
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 returnvalue04.py |
(10, 'hello') |
<class 'tuple'> |
10 |
<class 'int'> |
hello |
<class 'str'> |
$ |
函數中也可以定義函數,如此例函數 f5() 中定義了函數 f6() ,並且回傳 f6() ,由於變數 f7 接收函數 f5() 的回傳值,因此變數 f7 會變成函數型態,換言之, f7 會變成函數 f6()
def f5():
print("f5")
def f6():
print("f6")
return f6
f7 = f5()
f7()
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:returnvalue05.py
# 功能:示範回傳值定義
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 returnvalue05.py |
f5 |
f6 |
$ |
相關教學影片