特点 简化代码长度。
注意
lambda : 我是匿名函数 lambda a: a二、函数参数类型
具名函数和匿名函数的参数类型相同。
2.1. 必备参数注意 调用函数时必须按顺序传递必备参数 且不可缺失参数。
def fn(a, b): print(a) # 1 fn(1, 2)2.2. 关键字参数
特点 调用函数时将函数形参当作key值 将需要传递的参数当作值赋给key。这样做的好处就是 传递参数顺序不需要按顺序传递。
def fn(a, b): print(a) # 1 fn(b 2, a 1)2.3. 默认参数
特点 如果不传递参数则取用默认值。
注意 默认参数必须在必备参数后面
def fn(b, a 1): print(a) # 1 fn(b 2)2.4. 不定长参数
特点 不需要规定参数个数 且可与其他参数类型搭配使用。
2.4.1. *args注意
不定长参数前有一个 *。传入的不定长参数会被整合成元组类型。传入的不定长参数不可以使用关键字参数类型。如果不定长参数后方还有参数 那么使用函数时需要在不定长参数后使用关键字参数表示传递的不属于不定长参数。def fn1(a, *args): print(args) # (2, 3) fn1(1, 2, 3) def fn2(*args, a): print(args) # (1, 2) fn2(1, 2, a 3)2.4.2. **args
注意
不定长参数前有两个 * 。调用函数时只能传入关键字参数。传入参数会被整合成字典。def fn(*args):
print(args) # { a : 1, b : 2, c : 3}
fn(a 1, b 2, c 3)
三、实操
3.1. 根据学生成绩进行排序。
students [
{ name : lucy , grade : 88},
{ name : lucy , grade : 59},
{ name : lucy , grade : 99},
students.sort(key lambda item: item.grade, reverse True)
print(students) # [{ name : lucy , grade : 99}, { name : lucy , grade : 88}, { name : lucy , grade : 59}]
3.2. 递归求和
def add_num(x): if(x 1): return 1 return x add_num(x-1) print(add_num(10)) # 55



