百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

递归函数和匿名函数

off999 2024-12-08 17:27 21 浏览 0 评论

递归是一种编程思想,比如应用场景:

1、需要遍历一个文件夹下所有的文件,通常会使用递归来实现。

2、快速排序。

递归的特点:

函数内部自己调用自己

必须有出口

应用案例:求3以内的累加和。

# 求5以内的累加和
def sum_numbers(num):
    if num == 1:
        return 1
    # 当前数字 + 当前数字-1的累加和
    return num +sum_numbers(num-1)

result = sum_numbers(3)
print(result)  # 6

注意:如果没有出口,报错:会超出递归深度。

lambda表达式

1.1 lambda的应用场景

如果函数只有有igens返回值,并且只有一句代码,可以使用lambda简化。

1.2 lambda语法

lambda 参数列表:表达式

注意:

lambda表达式参数可有可无,函数的参数在lambda表达式中完全使用。

lambda表达式能接受任何数量的参数,但是只能返回 一个表达式的值。

# 函数示例
def function1():
    return 100


print(function1)  # <function function1 at 0x00D9C618>
print(function1())  # 100

# 使用lambda表达式
fn1 = lambda: 100

# lambda又称匿名函数
print(fn1)  # 输出lambda内存地址 <function <lambda> at 0x039046A8>
print(fn1())  # 函数调用,输出100

1.3 lambda示例

# 函数示例,求x + y值
def num_sum(x, y):
    return x + y


result = num_sum(100, 200)
print(result)  # 300

# 使用lambda表达式
fn1 = lambda x, y: x + y

print(fn1(300, 500))  # 函数调用,输出800

1.4 lambda的参数形式

# lambda 无参数
fn1 = lambda: 100
print(fn1())  # 100

# lambda 一个参数
fn2 = lambda x: x
print(fn2('Hello python!'))  # Hello python!

# lambda 默认参数/缺省参数
fn3 = lambda a, b, c = 300: a + b + c
print(fn3(100, 200))  # 600
print(fn3(100, 200, 500))  # 800

# lambda 可变参数:*args
fn4 = lambda *args: args
print(fn4(100, 200))  # (100, 200)
print(fn4(100, 200, 500))  # (100, 200, 500)
print(fn4(100))  # (100,)
# 注意:可变参数传入lambda之后,返回值为元组

# lambda 可变参数:**kwargs
fn4 = lambda **kwargs: kwargs
print(fn4())  # {}
print(fn4(name='TIM', age=20))  # {'name': 'TIM', 'age': 20}
# 注意:可变参数传入lambda之后,返回值为字典

lambda的应用

# 带判断的lambda
fn1 = lambda a, b: a if a > b else b

print(fn1(100, 200))  # 200
print(fn1(1000, 200))  # 1000

# 列表数据按照字典key的值排序
stu_info = [
    {'name': 'TOM', 'age': 18},
    {'name': 'Lily', 'age': 26},
    {'name': 'Eric', 'age': 24}
]
# 按照name 值升序排列
stu_info.sort(key=lambda x: x['name'])  # 利用一个参数的lambda输出的值作为排序的key.reverse默认为升序。
print(stu_info)  # [{'name': 'Eric', 'age': 24}, {'name': 'Lily', 'age': 26}, {'name': 'TOM', 'age': 18}]

# 按照age值降序排列
stu_info.sort(key=lambda x: x['age'], reverse=True)  # 利用一个参数的lambda输出的值作为排序的key.reverse默认为升序。
print(stu_info)  # 输出[{'name': 'Lily', 'age': 26}, {'name': 'Eric', 'age': 24}, {'name': 'TOM', 'age': 18}]

相关推荐

2017年联想笔记本电脑有几款

17年的笔记本电脑可以勉强安装一下win10系统试试。关键看你的内存有多少,内存大于4个G的话可以安装win10速度不会太慢。最好是安装win7系统,这样能发挥你这台电脑的所有的性能,你用起来也会感觉...

当前显卡排名(当下显卡排行)

101、Irispro5802、Iris62002、Iris52004、UHD630/6205、HD6306、HD5307、HD46008、HD44009、HD420010、HD40...

win10专业版激活变成企业版(win10专业版激活变成企业版怎么办)

win10永久激活密钥很少,一旦网上有分享,等你拿到时就超过期限了,一般是要购买。激活win10系统可以使用激活工具:win10激活工具下载一、win10专业版产品密钥NXRQM-CXV6P-PBGV...

ghostwinxp下载纯净版(ghost win7纯净版下载)

可以下载的,现在官网和其他网站上都可以下载xp原版的。可以通过以下步骤下载我的世界游戏到xp系统中:1.首先打开你的浏览器软件,搜索关键字“我的世界xp版下载”,找到可靠下载地址;2.从下载页面下...

惠普完整版驱动(惠普最新驱动)

惠普官方的标准操作:HP1050安装驱动步骤:一:准备:拿出驱动光盘放入光驱或到HP官网下载完整版驱动。二:不要插USB数据线或插上线打印机电源不要开,安装完整版驱动,当程序提示插入USB数据线时,插...

浏览器最好用的(浏览器最好用的插件)

一、谷歌浏览器谷歌浏览器是公认最好用的,这个可以从市场占有率看出端倪,超过三分之二的用户使用谷歌浏览器。Chrome浏览器以简洁快速著称,不管是普通用户还是开发人员,chrome浏览器都是首选。Chr...

fast路由器6位初始密码(fast路由器的密码)

答:fast路由器初始密码是admin;新款的迅捷无线路由器,管理界面没有初始密码。查看迅捷无线路由器底部标签,标签上标注了admin,说明初始密码就是admin;如果没有,说明该路由器没有初始密码。...

硬盘恢复软件哪个好(硬盘 恢复软件)

迷你兔数据恢复工具:支持恢复硬盘丢失的数据Pc3000数据恢复软件是一款非常专业的硬盘修复工具,能够对电脑硬盘资料数据进行修复,通过使用这个软件可以解决硬盘数据丢失故障,是一个用户进行硬盘资料修复好帮...

十大品牌监控摄像头排名(十大品牌监控摄像头排名第一)

答:1、华为/HUAWEI9.92、小米/MI9.63、罗技/Logitech9.64、海康威视/HIKVISION9.25、乔安/Jooan9.26、普联/TP-LINK9.27、乐橙8.98、萤石...

360手机助手老旧版本大全(360手机助手 老版本)

在设置里面找到历史记录就可能查看360手机助手·换机神器是安卓系统的换机软件,因为苹果的换机软件是爱思。1、打开360手机卫士,登陆账号,点击账号。2、进入个人中心,点击账户安全,在密保工具中,点击解...

系统应用工程师(系统工程的应用)

信息软件系统工程师有前途,毕业以后可以从事软件开发,软件系统的维护,运营等等,和计算机有关的工作内容,因为计算机专业可以说是一个非常热门的专业,很多的大型企业公司基本上都是以计算机研发为主的,薪资福利...

qq恢复系统常见问题(qq恢复系统常见问题及答案)

QQ好友恢复系统一直显示服务器频繁有可能是系统的问题,你的qq重新更新一下,或者你卸载了重新下载一下就有可能好了。您好,很高兴为您解答:您可以试试清空下IE内存,然后关掉不必要的程序,尽量在电脑运...

win10自带的office不见了(win10自带的office在哪个文件夹)

win10系统的office在电脑硬盘office的安装目录里,具体打开安装目录的操作如下:1、首先我们右键点击word,打开方式,选择默认程序打开。2、在默认框打钩,点击【浏览】。3、打开你安装of...

华为官网序列号查询入口(华为官网序列号查询入口手写笔)
  • 华为官网序列号查询入口(华为官网序列号查询入口手写笔)
  • 华为官网序列号查询入口(华为官网序列号查询入口手写笔)
  • 华为官网序列号查询入口(华为官网序列号查询入口手写笔)
  • 华为官网序列号查询入口(华为官网序列号查询入口手写笔)
手机主题美化包(手机主题美化包下载)
  • 手机主题美化包(手机主题美化包下载)
  • 手机主题美化包(手机主题美化包下载)
  • 手机主题美化包(手机主题美化包下载)
  • 手机主题美化包(手机主题美化包下载)

取消回复欢迎 发表评论: