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

函数的多返回值、函数多种传参方式 学会啦!继续学习~

1.函数的多返回值

如果一个函数要有多个返回值,该如何书写代码?

 按照返回值的顺序,写对应顺序的多个变量接收即可,

变量之间用逗号隔开,

支持不同类型的数据return

# 演示使用多个变量,接受多个返回值
def test_return():return 1, 2, 3
x, y ,z = test_return()
print(x)
print(y)
print(z)# 1
# 2
# 3#类型不受限
def test_return():return 1, "hi", True
x, y ,z = test_return()
print(x)
print(y)
print(z)# 1
# hi
# True

2.函数多种传参方式

1)函数参数种类

使用方式上的不同,函数有4种常见参数使用方式:

·位置参数

·关键字参数

·缺省参数

·不定长参数

2)函数多种传参操作

a.位置参数

定义:即调用函数时根据函数定义的参数位置来传递参数。

# 位置参数
def user_info(name, age, gender):print(f"您的名字是:{name}, 年龄是:{age}, 性别是:{gender}")user_info("Tom", 20, "男")# 您的名字是:Tom, 年龄是:20, 性别是:男

⚠️传递的参数和定义的参数的顺序及个数必须一致。

b.关键字参数

定义:即函数调用时通过“键 = 值”形式传递参数。

作用:可以让函数更加清晰,容易使用,同时也清除了参数的顺序需求。

# 位置参数
def user_info(name, age, gender):print(f"您的名字是:{name}, 年龄是:{age}, 性别是:{gender}")user_info("欣欣", 11, "女")
# 关键字参数
user_info(name="欣欣", age=11, gender="女")
user_info(age=11, gender="女", name="欣欣")  # 可以不按照参数的定义顺序传参
user_info("欣欣", gender="女", age=11)# 您的名字是:欣欣, 年龄是:11, 性别是:女
# 您的名字是:欣欣, 年龄是:11, 性别是:女
# 您的名字是:欣欣, 年龄是:11, 性别是:女
# 您的名字是:欣欣, 年龄是:11, 性别是:女

c.缺省参数

定义:也叫默认参数 用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值。

⚠️所有位置参数必须出现在默认参数前,包括函数定义和调用。

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

# 缺省参数(默认值)
def user_info(name, age, gender="女"):  # 设置默认值必须在最后,并统一都在最后print(f"您的名字是:{name}, 年龄是:{age}, 性别是:{gender}")user_info("欣欣", 11)
user_info("欣欣", 11, gender="男")# 您的名字是:欣欣, 年龄是:11, 性别是:女
# 您的名字是:欣欣, 年龄是:11, 性别是:男

d.不定长参数

定义:也叫可变参数 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。

作用:当调用函数不确定参数个数时,可以使用不定长参数。

类型:位置传递、关键字传递

位置传递:

定义:传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递

关键字传递:

⚠️参数是“键 = 值”形式的形式情况下,所有的“键 = 值”都会被kwargs接受,同时会根据“键 = 值”组成字典。

# 不定长-位置不定长 *号
# 不定长定义的形式参数会作为元组存在,接收不定长数量的参数传入
def user_info(*args):print(f"args参数的类型是:{type(args)}, 内容是:{args}")user_info(1, 2, 3, "欣欣", "女孩")
# 不定长-关键字不定长 **号
def user_info(**kwargs):print(f"args参数的类型是:{type(kwargs)}, 内容是:{kwargs}")user_info(name="欣欣", age=11, gender="女")# args参数的类型是:<class 'tuple'>, 内容是:(1, 2, 3, '欣欣', '女孩')
# args参数的类型是:<class 'dict'>, 内容是:{'name': '欣欣', 'age': 11, 'gender': '女'}

3)函数多种传参方式总结

·位置参数:根据参数位置传递参数

·关键字参数:通过“键 = 值”形式传递参数,可以不限参数顺序,可以和位置参数混用,位置参数需在前

·缺省参数:不传递参数值时会使用默认的参数值,默认值的参数必须定义在最后

·不定长参数:位置不定长传递以*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args,关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs

完结 🎉 继续更新!加个关注收藏一下叭~

相关文章:

  • vulntarget-b记录(Sliver学习)
  • 探讨微服务架构如何降低系统复杂度
  • 隔离变压器的特点与作用
  • 【ai】livekit服务本地开发模式1:example app信令交互详细流程
  • 就业班 第四阶段(docker) 2401--5.29 day3 Dockerfile+前后段项目若依ruoyi
  • 对于C++STL及其时间复杂度的总结
  • Android Coil的简单介绍及使用
  • 电源小白入门学习10——浪涌、防浪涌器件、浪涌保护芯片
  • YOLOv10训练自己的数据集
  • 深度学习Week15——利用TensorFlow实现猫狗识别2
  • 【Elasticsearch】IK分词器的下载及使用
  • AAA认证,授权,计费
  • 【LLM第7篇】transformer跟bert、gpt、大模型的联系
  • Python魔法之旅-魔法方法(14)
  • vue 按钮权限
  • [译]前端离线指南(上)
  • CAP理论的例子讲解
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Web标准制定过程
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 力扣(LeetCode)56
  • 学习JavaScript数据结构与算法 — 树
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • No resource identifier found for attribute,RxJava之zip操作符
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​linux启动进程的方式
  • # wps必须要登录激活才能使用吗?
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (day18) leetcode 204.计数质数
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (过滤器)Filter和(监听器)listener
  • (六)vue-router+UI组件库
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十) 初识 Docker file
  • (一)kafka实战——kafka源码编译启动
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 8 跨平台高性能边缘采集网关
  • .net core 6 redis操作类
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET面试题(二)
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET使用存储过程实现对数据库的增删改查
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .net中我喜欢的两种验证码
  • .skip() 和 .only() 的使用
  • @JsonFormat与@DateTimeFormat注解的使用
  • @RequestBody与@ResponseBody的使用
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [100天算法】-二叉树剪枝(day 48)