『無為則無心』Python函式 — 27、Python函式的返回值

繁華似錦Fighting發表於2021-07-12

1、返回值概念

例如:我們去超市購物,比如買飲料,給錢之後,是不是售貨員會返回給我們飲料這個商品。在函式中,如果需要返回結果給使用者,就需要使用函式返回值。

換句話說,返回值就是函式執行以後返回的結果。

def buy():
    # return返回結果給函式呼叫的地方
    return '煙'

# 使用變數儲存函式返回值
goods = buy()
print(goods)

2、return關鍵字的作用

  1. 負責函式返回值。
  2. 退出當前函式:導致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)

注意:

  1. return a, b寫法,返回多個資料的時候,預設是元組型別。
  2. 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、fn5fn5()的區別

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:用來結束函式。

相關文章