『无为则无心』Python函数 — 27、Python函数的返回值

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:用来结束函数。