数据来源
01 函数多返回值
![](https://i-blog.csdnimg.cn/blog_migrate/70db2fa9e0c07f85cf338723725c6255.png)
多个返回值
![](https://i-blog.csdnimg.cn/blog_migrate/4fec6b223ed1e440a9d0010f3b73ae8f.png)
演示
"""
演示函数的多返回值示例
"""
# 演示使用多个变量,接收多个返回值
def test_return():
return 1,2,"Hello",[1,3,45,6],True
x,y,z,my_lier,Boolean = test_return()
print(f"x={x}") # 1
print(f"y={y}") # 2
print(f"z={z}") # Hello
print(f"my_lier={my_lier}") # [1,3,45,6]
print(f"Boolean={Boolean}") #True
![](https://i-blog.csdnimg.cn/blog_migrate/2f99e08327efcd01cda2ea5a58d84596.png)
02 函数多种传参方式
函数参数种类
![](https://i-blog.csdnimg.cn/blog_migrate/bfffc8c87f2a7ad1611ccd9150317374.png)
位置参数
![](https://i-blog.csdnimg.cn/blog_migrate/a8efdd06aafc3b47f411dc56fefd5698.png)
关键字参数
![](https://i-blog.csdnimg.cn/blog_migrate/2e55e9befae066a7184a08859bf6ee1c.png)
演示
"""
演示多种传参的形式
"""
def user_info(name,age,gender):
"""
用户信息函数
:param name: 用户姓名
:param age: 用户年龄
:param gender: 用户性别
:return:None
"""
print(f"你的名字是:{name},年龄是:{age},性别是:{gender}")
return None
# 位置参数 - 默认使用形式
user_info("张三",18,"男")
# 关键参数
user_info(name="张三",age=18,gender="男")
user_info(gender="女",name="小红",age=19) # 可以不按顺序传参
user_info("小和",gender="女",age=19) # 混合传参
![](https://i-blog.csdnimg.cn/blog_migrate/ce5285ac356b88aa9a137e1c1f0dd1c0.png)
缺省参数
![](https://i-blog.csdnimg.cn/blog_migrate/04027372bb63f683eb1078d45c1540dc.png)
演示
# 缺省参数(默认值)注意:默认值要设置在最后
def user_info(name,age,gender="男"):
"""
用户信息函数
:param name: 用户姓名
:param age: 用户年龄
:param gender: 用户性别
:return:None
"""
print(f"你的名字是:{name},年龄是:{age},性别是:{gender}")
return None
print("缺省参数")
user_info("李四",18,) # 不传性别就使用默认的
user_info("小琴",18,"女") # 传性别就使用你传的
![](https://i-blog.csdnimg.cn/blog_migrate/671e7ca40c72b5d3897899fc13b4e923.png)
不定长的参数
![](https://i-blog.csdnimg.cn/blog_migrate/0b12517bb288a45bc8887de6de8b3642.png)
位置传递
![](https://i-blog.csdnimg.cn/blog_migrate/53ef2147207bc618b7511c3815694b6b.png)
关键字传递
![](https://i-blog.csdnimg.cn/blog_migrate/7c74c068f4ea64f63f7076996e01a358.png)
演示
# 不定长 - 位置不定长, * 号
# 不定长定义的形式参数会作为元组存在,接收不定长数量的参数传入
def user_info(*args):
print(f"args参数的类型是:{type(args)},内容是:{args}")
user_info(1,2,3,4,5,6,7,'张三')
# 不定长 - 关键字不定长, ** 号
# 不定长定义的形式参数会作为字典存在,接收不定长数量的参数传入
def user_info(**kwargs):
print(f"args参数的类型是:{type(kwargs)},内容是:{kwargs}")
user_info(name="张三",age="18")
![](https://i-blog.csdnimg.cn/blog_migrate/3d5acfe4e869692cafdfde2662032184.png)
总结
![](https://i-blog.csdnimg.cn/blog_migrate/59602d1a90f18a3a78bf2fae29ba98e2.png)
03 匿名函数
函数作为参数传递
![](https://i-blog.csdnimg.cn/blog_migrate/739a1ada0725ce18372440d8f2dc2427.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ed4cfdc7bf62508e9c0af2301f5d0d7d.png)
演示
"""
演示函数作为参数传递
"""
# 定义一个函数,接收另一个函数作为传入参数
def test_func(compute):
result = compute(1,2)
print(result)
# 定义一个函数,准备作为参数传入另一个函数
def compute(x,y):
return x + y
# 调用,并传入函数
test_func(compute)
![](https://i-blog.csdnimg.cn/blog_migrate/28b012b49dff9d54f5494072ee113b93.png)
总结
![](https://i-blog.csdnimg.cn/blog_migrate/2d85b053378a2c2e06731866c0ca2dc5.png)
lambda匿名函数
![](https://i-blog.csdnimg.cn/blog_migrate/302f8edd65aea14027cf56d50d44c6a6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/753b8f8a5c21206cce49b7a57a05819e.png)
演示
"""
演示函数作为参数传递
"""
# 定义一个函数,接收另一个函数作为传入参数
def test_func(compute):
result = compute(1,2)
print(result)
# 定义一个函数,准备作为参数传入另一个函数
def compute(x,y):
return x + y
# 调用,并传入函数
test_func(compute)
# 使用lambda关键字定义匿名函数,将匿名函数作为参数传递
def test_func(compute):
result = compute(1,2)
print(result)
test_func(lambda x,y:x - y)
![](https://i-blog.csdnimg.cn/blog_migrate/84028f0ecc7d7c2e239a93ca18da0c9c.png)
总结
![](https://i-blog.csdnimg.cn/blog_migrate/73089a58870b77f20f005cb786a4d12b.png)