python递归笔记

一、递归

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)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值