一、递归
1.1递归的应用场景
1、遍历一个文件夹下的所有文件
2、很多算法比如快速排序
1.1.1递归的特点
函数内部自己调用自己
必须有出口
1.2应用:3以内数字累加
#3+2+1
def sum_numbers(num):
#如果是1,直接返回1--出口
if num ==1:
return 1
#如果不是1,重复执行累加并返回结果
return num +sum_numbers(num-1)
sum_result =sum_numbers(3)
print(sum_result)
二、lambda表达式
2.1应用场景
如果一个函数有一个返回值,并且只有一句代码,可以使lambda简化
2.2lambda语法
lambda 参数列表:表达式
def fn1():
return 200
print(fn1)
print(fn1())
#lambda表达式
fn2=lambda:100
print(fn2)#lambda内存地址
print(fn2())#100
2.3计算 a+b
2.3.1函数实现
def add(a,b):
return a+b
result=add(1,2)
prtint(result)
fn1=lambda a,b:a+b
print(fn1(1,2))
2.4lambda的参数形式
2.4.1无参数
fn2=lambda:100
print(fn2)#lambda内存地址
print(fn2())#100
2.4.2一个参数
fn2=lambda a:a
print(fn2('hello'))#hello
2.4.3默认参数
fn2=lambda a,b,c=100:a+b+c
print(fn2(10,20))
2.4.4可变参数*args
fn1=lambda *args:args
print(fn1(10,20,30))
2.4.5可变参数:**kwargs
fn1=lambda **kwargs:kwargs
print(fn1(name='python',age=20))
2.5lambda的应用
2.5.1带判断的lambda
fn1=lambda a,b:a if a>b else b
print(fn1(1000,200)
2.5.2列表数据按key的值排序
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]
sorted(students, key=lambda student : student[2]) # sort by age
# 输出如下:
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]