Python函数进阶
函数的多返回值
def num(a, b):
return a + b, a - b, a * b, a / b
x, y, z, w = num(4, 2)
print(x, y, z, w)
# 结果:6 2 8 2.0
函数的多种传参方式
位置参数(最普通的方式):
def num(a, b):
return a + b
print(num(4, 2))
关键字参数(键=值方式)eg:print(xxx, end = ' '),参数之间无顺序要求,位置参数与关键字参数混用,位置参数需要在前面:
def sayHello(name, age, gender):
print(f"Hello everyone.My name is {name},My age is {age}.My gender is {gender}")
sayHello('XXX', gender = '男', age = 18)
默认参数,默认参数需要在最后面:
def sayHello(name, age, gender = '男'):
print(f"Hello everyone.My name is {name},My age is{age}.My gender is {gender}")
sayHello('aaa', 18)
sayHello('bbb', 19, '女')
不定长参数:
位置传递不定长:一个*,以元组的形式接受参数
def user_info(*args):
print(args)
user_info('TOM')
user_info('TOM', 18)
关键字传递不定长:** 参数是键=值的形式,以字典的形式接受参数
def user_info(**kwargs):
print(kwargs)
user_info(name='TOM')
user_info(name='TOM', age=18)
匿名函数
函数作为参数传递
将函数作为参数传递,实现了数据的确定,但处理逻辑不确定
普通的参数传递是实现了数据的传递,而不是处理逻辑的传递
def test_fun(arg1):
res = arg1(1, 2)
print(res)
def add(a, b):
return a + b
def sub(a, b):
return a - b
def mul(a, b):
return a * b
def div(a, b):
return a / b
test_fun(add)
test_fun(sub)
test_fun(mul)
test_fun(div)
lambda匿名函数
无名称,只可以临时使用一次
格式:
lambda 传入参数:函数体(一行代码)
eg1:
def test_fun(arg1):
res = arg1(1, 2)
print(res)
test_fun(lambda a, b: a + b) # 匿名函数,默认有return
eg2:
fun = lambda a, b: a + b
res = fun(1, 2)
print(res)