当前位置: 首页 > news >正文

Python基础入门 --- 7.函数

Python基础入门

第七章:

7.函数

7.1 函数多返回值

按照返回值顺序,写对应顺序的多个变量接收,变量之间用逗号分隔,支持不同数据类型return

def test_return():return 1,"hello", Truex, y, z = test_return()
print(x) # 1
print(y) # hello
print(z) # True
7.2 函数多种传参方式

参数种类:

  • 位置参数

  • 关键字参数

  • 缺省参数

  • 不定长参数

7.2.1 位置参数

概念:调用函数时根据函数定义的参数位置来进行传递参数。

def Student(name, sex, age):print(f"我的名字是{name},性别是{sex},今年{age}岁") # 我的名字是小明,性别是男,今年18岁
Student("小明", "男", 18)

补充:传递的参数和定义的参数顺序及个数需相同。

7.2.2 关键字参数

概念:函数调用时通过‘键=值’形式传递参数。

作用:让函数更加清晰、易使用,清除了参数的顺序需求。

def Student(name, sex, age):print(f"我的名字是{name},性别是{sex},今年{age}岁")
Student(name = "小明", age = 20, sex = "男")
Student(sex = "女", age = 18, name = "小红")
Student( "小李", age = 19, sex = "男")

补充:函数调用时,如有位置参数,位置参数须在关键字参数前,但关键字参数之间不分先后顺序。

7.2.3 缺省参数

概念:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,函数调用时可不传该默认参数的值,所有位置参数必须出现在默认参数前,包括函数定义以及调用。

作用:函数调用时没传递参数,就会使用默认值用缺省参数对应的值。

补充:函数调用时,如果为缺省参数传值则修改默认参数值,否则使用该默认值。

7.2.4 不定长参数

概念:不定长参数也叫可变参数,用于不确定调用时会传递多少个参数(可不传参)的场景。

作用:函数调用时不确定参数个数时,可用不定长参数

类型

  • 位置传递

  • 关键字传递

位置传递
def Student(*args):print(args)
Student("小明", "211515", 20) # ('小明', '211515', 20)
Student("小红",  18)          # ('小红', 18)

补充:传进的所有参数都会被args变量收集,其会根据传进参数的位置合并成一个元组,args是元组类型,这就是位置传递。

关键字传递
def Student(**kwargs):print(kwargs) # {'name': '小明', 'sex': '男', 'age': 18}
Student(name="小明", sex="男", age=18)

补充:参数是‘键=值’形式的形式情况下,所有的‘键=值’都会被kwargs接受,会根据‘键=值’组成字典。

7.3 匿名函数
7.3.1 函数作为参数传递

作用:传入计算逻辑,并非传入数据。

# 定义一个函数,接收另一个函数作为传入参数
def test(calculate):ret = calculate(10, 20)print(ret)# 定义一个函数,作为参数传入另一个函数
def calculate(x, y):return x + y;# 调用并传入参数
test(calculate) # 30

这是种计算逻辑的传递,并非数据的传递。不仅是相加、相除、等任何逻辑都可自行定义并作为函数传入。

7.3.2 Lambda匿名函数

函数定义

  • def关键字,可定义带有名称的函数

  • lamda关键字,可定义匿名函数(无名称)

有名称的函数,可基于名称重复使用。

无名称的匿名函数,只可临时使用一次。

语法结构:lamba 传入参数:函数体(一行代码)

  • lamba为关键字,表示定义匿名函数

  • 传入参数表示匿名参数的形式参数

  • 函数体为函数的执行逻辑,只能写一行代码,无法写多行。

# 定义一个函数,接收其他函数输入
def test(calculate):ret = calculate(10, 20)print(ret)# 通过lambda匿名函数的形式,将匿名函数作为参数传入
为参数传入
test(lambda x, y: x + y) # 30

下一章:Python基础入门 — 6.数据容器

http://www.lryc.cn/news/321723.html

相关文章:

  • 第4周 Python程序流程控制刷题
  • 高亮搜索中的关键字怎么实现
  • OpenCV系列文章目录(持续更新中......)
  • 【机器学习系列】M3DM工业缺陷检测部署与训练
  • 西瓜书机器学习AUC与ℓ-rank(loss)的联系理解以及证明(通俗易懂)
  • 渔业安全生产综合管理指挥系统-航迹数据优化方案
  • 发现数据之美:探索数据可视化的艺术与技术
  • Flutter项目组件模块化开发的实践与搭建
  • Flink:使用 Faker 和 DataGen 生成测试数据
  • Json格式解析
  • Java Day13 多线程
  • 以太坊的演变:EIP、ERC 概念以及革命性的 ERC20、ERC721 和 ERC115 标准
  • B003-springcloud alibaba 服务治理 nacos discovery ribbon feign
  • mac笔记本执行定时任务
  • 解决linux系统网卡加载慢的问题
  • Linux 命令或者一些工具
  • 基于python的4s店客户管理系统
  • 解决谷歌浏览器最新chrome94版本CORS跨域问题
  • JAVA 线程
  • Rust 基于 await、async 的异步编程和纤程、协程的实现
  • 【进阶五】Python实现SDVRP(需求拆分)常见求解算法——差分进化算法(DE)
  • 什么是神经网络?
  • 基于Python的图形用户界面设计及应用
  • python网络爬虫实战教学——urllib的使用(1)
  • 简述归并排序
  • HTML实现卷轴动画完整源码附注释
  • sh: 1: dtc: not found
  • laravel 表单验证的 exists、unique 去除软删除字段的校验
  • 【PHP + 代码审计】函数详解2.0
  • 宠物智能喂食机方案设计