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

时间:2021-12-29 09:50:08

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