1.函数的多返回值
def test_return():
return 0 ,"hello",True
x,y,z=test_return()
print(x)
print(y)
print(z)
通过逗号的形式返回多个参数值,参数值可以是任意类型
2.函数的多种传参方式
1.函数参数种类
位置参数:调用函数时,根据函数定义的参数位置来传递函数
def user_info(name,age,gender):
print(f'您的名字是{name},年龄是{age},性别是{gender}')
user_info('TOM',20,'男')
- 传递的参数和定义的参数的顺序及个数必须一致
关键字参数:函数调用时通过“键=值”的形式传递参数
- 作用:可以让函数更加清晰,容易使用,同时也消除了参数的顺序需求
def user_info(name,age,gender):
print(f'您的名字是{name},年龄是{age},性别是{gender}')
#可以不按照固定顺序
user_info(name = '小明',gender = '男',age = 20)
#关键字传参
user_info(name = '小明',age = 20,gender = '男')
#可以和位置参数混用,位置参数必须在前,且匹配参数顺序
user_info('小明',age = 20,gender = '男')
- 函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序
缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数的定义和调用)
- 作用:当调用函数没有传递参数时,就会使用默认是缺省参数对应的值
- 默认参数必须写到最后
def user_info(name,age,gender='男'):
print(f'您的名字是{name},年龄是{age},性别是{gender}')
user_info(name = '小明',age = 20)
user_info(name = '小明',age = 20,gender = '女')
不定长参数:分为两种,位置传递和关键字传递
- 位置传递的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递
#不定长 - 位置不定长 *号
#不定长定义的形式参数会作为元组存在,接受不定长数量的参数传入
def user_info(*args):
print(f"ages参数的类型是{type(args)},内容是{args}")
user_info(1,2,3,'小明','男孩')
- 关键字传递的参数是“键=值”的形式的情况下,所有的“键=值”都会被kwargs接受,同时会根据“键=值”组成字典
#不定长--关键字不定长,**号
def user_info(**kwargs):
print(f"ages参数的类型是{type(kwargs)},内容是{kwargs}")
user_info(name = '小王',age = 11)
3.函数作为参数传递
4.lambda匿名函数
在函数的定义中,def关键字,可以定义带有名称的函数,lambda关键字,可以定义匿名函数(无名称),有名称的函数,可以重复使用,无名称的匿名函数,只可临时使用一次。
语法:lambda 传入参数:函数体(一行代码)
def text_func(compute):
result = compute(1,2)
print(result)
def compute(x,y):
return x+y
text_func(compute)
def text_func(compute):
result = compute(1,2)
print(result)
text_func(lambda x,y:x+y)