1.函数的所返回值
def test_return():
return 1, 2
x, y = test_return()
print(x) # 结果为1
print(y) # 结果为2
按照返回值的顺序,写对应顺序的多个变量接收即可
变量之间用逗号隔开
支持不同类型的数据return
# 多个变量接收多个返回值
def test_return():
return 1, 2, "hello"
x, y, z = test_return()
print(x) # 结果为1
print(y) # 结果为2
print(z) # 结果为hello
1
2
hello
2.函数多种传参方式
1)掌握位置参数
位置参数:调用函数时根据函数定义的参数位置来传递参数
def user_info(name, age, gender):
print(f"姓名:{name},年龄:{age},性别:{gender}")
# 位置参数,默认形式
user_info('张三', 15, '男')
2)掌握关键字参数
关键字参数:函数调用时通过“键=值”形式传递参数.
作用: 可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求.
def user_info(name, age, gender):
print(f"姓名:{name},年龄:{age},性别:{gender}")
# 关键字参数
user_info(name='小红', age=16, gender='女')
user_info(gender='男', name='李四', age=12) # 可以不按照参数的定义顺序传参
3)掌握不定长参数
不定长参数:不定长参数也叫可变参数. 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景.
作用: 当调用函数时不确定参数个数时, 可以使用不定长参数
不定长参数的类型:
①位置传递
②关键字传递
# 不定长,位置不定长,*号
# 不定长定义的形式参数会作为元组存在,接收不定长数量的参数传入
def user_info(*args):
print(f"args参数的类型是:{type(args)},内容是:{args}")
user_info(1, 2, "aaaabbbccd")
# 不定长,关键字不定长,**号 key - word :键值对
# 不定长定义的形式参数会作为字典存在
def user_info(**kwargs):
print(f"kwargs参数的类型是:{type(kwargs)},内容是:{kwargs}")
user_info(name='hah', age=18, gender='男', addr='四川')
args参数的类型是:<class 'tuple'>,内容是:(1, 2, 'aaaabbbccd')
kwargs参数的类型是:<class 'dict'>,内容是:{'name': 'hah', 'age': 18, 'gender': '男', 'addr': '四川'}
4)掌握缺省参数
def user_info(name, age, gender='男'): # 设置默认值时,位置必须在函数最后面
print(f"姓名:{name},年龄:{age},性别:{gender}")
user_info('小天', 15)
user_info('小甜', 10, '女')
总结:
1.掌握位置参数
- ·根据参数位置来传递参数
2.掌握关键字参数
- ·通过“键=值”形式传递参数,可以不限参数顺序
- ·可以和位置参数混用,位置参数需在前
3.掌握缺省参数
- ·不传递参数值时会使用默认的参数值
- ·默认值的参数必须定义在最后
4.掌握不定长参数
- 位置不定长传递以*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args
- 关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs
3.匿名函数
1)函数作为参数传递
# 定义一个函数,接收另一个函数作为参数传入
def test_func(add_num):
result = add_num(1, 2)
print(f"add_num参数的类型是:{type(add_num)}")
print(f"计算结果是:{result}")
# 定义一个函数,准备作为参数传入另一个函数
def add_num(x, y):
return x + y
# 调用,并传入函数
test_func(add_num)
2)lambda匿名函数
函数的定义中
-
def关键字,可以定义带有名称的函数
-
lambda关键字,可以定义匿名函数(无名称)
有名称的函数,可以基于名称重复使用。
无名称的匿名函数,只可临时使用一次。
语法:
lambda 传入参数:函数体(一行代码)
-
lambda 是关键字,表示定义匿名函数
-
传入参数表示匿名函数的形式参数,如:x, y 表示接收2个形式参数
-
函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码
# 定义一个函数,接收其它函数传入
def test_func(add_num):
result = add_num(1, 2)
print(f"计算结果是:{result}")
# 通过lambda匿名函数的形式,将匿名函数作为参数传入
test_func(lambda x, y: x + y)
计算结果是:3