1、返回值概念
例如:我們去超市購物,比如買飲料,給錢之後,是不是售貨員會返回給我們飲料這個商品。在函式中,如果需要返回結果給使用者,就需要使用函式返回值。
換句話說,返回值就是函式執行以後返回的結果。
def buy():
# return返回結果給函式呼叫的地方
return '煙'
# 使用變數儲存函式返回值
goods = buy()
print(goods)
2、return關鍵字的作用
- 負責函式返回值。
- 退出當前函式:導致
return
下方的所有程式碼(函式體內部)不執行。
示例如下:
需求:製作一個計算器,計算任意兩數字之和,並儲存結果。
def sum_num(a, b):
return a + b
# 用result變數儲存函式返回值
result = sum_num(1, 2)
print(result)
3、返回值可以返回的資料型別
return
後邊跟什麼值,函式就會返回什麼值。
return
後邊可以跟任意的物件,返回值甚至可以是一個函式。
# 示例1:可以返回任何物件
def fn():
return 123 # 123
# return 'Hello' # Hello
# return [1,2,3] # [1, 2, 3]
# return {'k':'v'} # {'k': 'v'}
r = fn()
print(r)
# 2.返回一個函式
def fn():
def fn2():
print('hello')
return fn2
r = fn()
# 結果:<function fn.<locals>.fn2 at 0x0000000002C24828>
print(r)
# 也可以直接呼叫整個函式
# 結果:hello
r()
# 3.如果僅僅寫一個return 或者 不寫return,
# 則相當於return None
def fn2():
a = 10
return
r = fn2()
print(r) # None
4、函式如何返回多個值
思考:如果一個函式如些兩個return
,程式如何執行?
如下所示:
def return_num():
return 1
return 2
result = return_num()
print(result) # 1
答:只執行了第一個return
,原因是因為return
可以退出當前函式,導致函式中return
下方的程式碼都不執行,return
一旦執行函式自動結束。
思考:如果一個函式要有多個返回值,該如何書寫程式碼?
def return_num():
return 1, 2
# 返回一個元組
result = return_num()
print(result) # (1, 2)
注意:
return a, b
寫法,返回多個資料的時候,預設是元組型別。return
後面可以連線列表、元組或字典,以返回多個值。
示例:
def return_num():
# 直接返回一個元組
# return (1, 2) # (1, 2)
# 直接返回一個列表
# return [100, 200] # [100, 200]
# 直接返回一個字典
return {'name': 'Python', 'age': 30}
result = return_num()
print(result) # {'name': 'Python', 'age': 30}
5、fn5
和 fn5()
的區別
def fn5():
return 10
print(fn5) # <function fn5 at 0x00000000029D5798>
print(fn5()) # 10
fn5
是函式物件,列印fn5
實際是在列印函式物件<function fn5 at 0x05771BB8>
。fn5()
是在呼叫函式,列印fn5()
實際上是在列印fn5()
函式的返回值 10。
6、總結:
break
:用來退出當前迴圈。continue
:用來跳過當次迴圈。return
:用來結束函式。