递归函数、算法和生成式
递归函数
递归指的是函数在运行过程中直接或间接的调用了自身。
递归的特点有两个。
1.递推:
指一层层往下推导答案(每次的推导相较前一次难度有所下降)。
2.回溯:
依据最后的结论倒推出最初需要的答案。
函数的递归一定要有结束条件,不然就会报错。
为防止无限递归的情况,官网表示python默认的最大递归深度为1000次。(由于电脑性能等原因也可能是998、997次)
可以通过sys方法来查看和设置最大递归深度
二分法
算法指的是解决问题的高效方法。二分法属于入门级的算法。
当想要在一堆的有序的数字中找到某个数字时,可以使用二分法来有效的达成目的。
二分法的原理:
找到这堆数字的中间的数,将它与要找的数进行大小的比较,如果较大,则在较大的一半中继续切分。
如果较小则在较小的一半中切分,直到找到要找的数。
二分法的缺陷:
只能在有序的数据集中使用,并且如果要找的数就在开头,反而不如一个个数的笨办法有效。
三元表达式
三元表达式是一种代码的简便写法,当功能需求只是二选一时推荐使用三元表达式。
三元表达式格式:
条件达成采用的值 if 需要达成的条件 else 条件不达成时采用的值
三元表达式可以进行嵌套,但不推荐这种形式。
因为使用这种形式是为了代码的简洁,进行嵌套反而违背了这种目的。
列表生成式
列表生成式是一种简便的生成列表的语法,它的作用是快速的生成列表。
字典生成式
如果想只通过一个列表就生成字典,可以借助enumerate方法(枚举)。
enumerate的作用是返回两个值,一个是数字,相当于列表的索引,另一个是列表的元素。
通过enumerate方法可以将索引值当做k值,元素当做v值来快速生成字典。
匿名函数
匿名函数指的是没有函数名的函数。
语法格式为:
lambda 形参:返回值。
由于没有名字,使用匿名函数需要连关键词一起写,单独使用时其实并不方便 ,所以一般和其他函数配合使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通