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

『无为则无心』Python函数 — 27、Python函数的返回值的更多相关文章

  1. 『无为则无心』Python函数 — 28、Python函数的简单应用

    目录 1.函数嵌套调用 2.Python函数的简单应用 (1)打印线条 (2)函数计算 (3)打印图形 3.函数的说明文档 (1)函数的说明文档的作用 (2)函数说明文档的语法 (3)查看函数的说明文 ...

  2. 『无为则无心』Python函数 — 25、Python中的函数

    目录 1.函数的使用 (1)定义函数 (2)调用函数 (3)使用函数的注意事项 2.函数的参数 3.实参的类型 Python函数的说明: Python中函数的应用非常广泛,前面章节中我们已经接触过多个 ...

  3. 『无为则无心』Python函数 — 26、Python函数参数的传递方式

    目录 1.位置参数 2.关键字参数 3.缺省参数(默认参数) 4.不定长参数(可变参数) (1)包裹位置传递 (2)包裹关键字传递 5.位置参数.默认参数.可变参数的混合使用 6.拓展:参数解包 提示 ...

  4. 『无为则无心』Python函数 — 29、Python变量和参数传递

    目录 1.Python的变量 (1)Python变量不能独立存在 (2)变量是内存中数据的引用 (3)注意点 2.了解变量的引用 3.Python的参数传递(重点) (1)示例 (2)结论 (3)总结 ...

  5. 『无为则无心』Python函数 — 30、Python变量的作用域

    目录 1.作用于的概念 2.局部变量 3.全局变量 4.变量的查找 5.作用域中可变数据类型变量 6.多函数程序执行流程 1.作用于的概念 变量作用域指的是变量生效的范围,在Python中一共有两种作 ...

  6. 『无为则无心』Python函数 — 31、命名空间(namespace)

    目录 1.什么是命名空间 2.三种命名空间 3.命名空间查找顺序 4.命名空间的生命周期 5.如何获取当前的命名空间 1.什么是命名空间 命名空间指的是变量存储的位置,每一个变量都需要存储到指定的命名 ...

  7. 『无为则无心』Python函数 — 32、递归

    目录 1.什么叫递归函数 2.递归的应用场景 3.递归的特点 4.应用:3以内数字累加和 5.应用:阶乘 6.总结 1.什么叫递归函数 Python中,在函数内部,可以调用其他函数.如果一个函数在内部 ...

  8. 『无为则无心』Python函数 — 33、高阶函数

    目录 1.高阶函数的定义 2.体验高阶函数 3.内置高阶函数 (1)map()函数 (2)reduce()函数 (3)filter()函数 1.高阶函数的定义 把函数作为参数传入(把一个函数作为另外一 ...

  9. 『无为则无心』Python函数 — 34、lambda表达式

    目录 1.lambda的应用场景 2.lambda语法 3.快速入门 4.示例:计算a + b 5.lambda的参数形式 6.lambda的应用 lambda表达式的主要作用就是化简代码. 匿名函数 ...

随机推荐

  1. docker容器中日志文件过大处理方法

    背景 :在日常工作中一个基于centos镜像构建起来的python爬虫程序,日志文件在两个月内到了500G,日志存放在根目录下面,在不扩容的情况下把这个问题给解决掉.通过定时任务和脚本的方法,定期的清 ...

  2. CSS 重置技术

    元素默认样式显示问题 每个浏览器对不同元素都有自己的默认样式.Google Chrome 渲染正文标题.段落.列表等,与 IE 浏览器可能都有所不同.这就导致同一个页面元素在不同的浏览器中显示效果不一 ...

  3. MyBatis 动态SQL(十二)

    动态条件查询 以下是我们数据库表 tb_user 的记录: 假设现在有一个需求,就是根据输入的用户年龄和性别,查询用户的记录信息.你可能会说,这太简单了,脑袋里立马蹦出如下的 SQL 语句: SELE ...

  4. 安卓开发(2)—— Kotlin语言概述

    安卓开发(2)-- Kotlin语言概述 Android的官方文档都优先采用Kotlin语言了,学它来进行Android开发已经是一种大势所趋了. 这里只讲解部分的语法. 如何运行Kotlin代码 这 ...

  5. 『动善时』JMeter基础 — 30、JMeter中JSON断言详解

    目录 1.JSON断言组件界面详解 2.JSON断言组件的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 (3)JSON断言界面内容 (4)查看运行结果 (5)断言结果组件说明 3.JS ...

  6. synchronized 的超多干货!

    前言 synchronized 这个关键字的重要性不言而喻,几乎可以说是并发.多线程必须会问到的关键字了.synchronized 会涉及到锁.升级降级操作.锁的撤销.对象头等.所以理解 synchr ...

  7. BASE理论之思考

    一.什么是BASE理论? BASE理论是对CAP中一致性和可用性权衡的结果,它的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性. BASE理论 ...

  8. Python 扩展 Op

    Python 扩展 Op 注意 :本文涉及的 Python Kernel 仅在 gcc 4.8.5 编译环境下充分测试,进一步的完善计划见 Issue 3951. 背景介绍 OneFlow 将各种对于 ...

  9. TVM部署和集成Deploy and Integration

    TVM部署和集成Deploy and Integration 本文包含如何将TVM部署到各种平台以及如何将其与项目集成. 与传统的深度学习框架不同.TVM堆栈分为两个主要组件: TVM编译器,完成所有 ...

  10. 【NX二次开发】Block UI 多行字符串

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...