递归函数、算法和生成式

递归函数

  递归指的是函数在运行过程中直接或间接的调用了自身。

  递归的特点有两个。

  1.递推:

    指一层层往下推导答案(每次的推导相较前一次难度有所下降)。

  2.回溯:

    依据最后的结论倒推出最初需要的答案。

  函数的递归一定要有结束条件,不然就会报错。

 

 

   

  为防止无限递归的情况,官网表示python默认的最大递归深度为1000次。(由于电脑性能等原因也可能是998、997次)

  可以通过sys方法来查看和设置最大递归深度

 

 

二分法

  算法指的是解决问题的高效方法。二分法属于入门级的算法。

  当想要在一堆的有序的数字中找到某个数字时,可以使用二分法来有效的达成目的。

  二分法的原理:

    找到这堆数字的中间的数,将它与要找的数进行大小的比较,如果较大,则在较大的一半中继续切分。

    如果较小则在较小的一半中切分,直到找到要找的数。

 

 

  二分法的缺陷:

    只能在有序的数据集中使用,并且如果要找的数就在开头,反而不如一个个数的笨办法有效。

 

三元表达式

  三元表达式是一种代码的简便写法,当功能需求只是二选一时推荐使用三元表达式。

  三元表达式格式:

    条件达成采用的值 if 需要达成的条件 else 条件不达成时采用的值

 

 

  三元表达式可以进行嵌套,但不推荐这种形式。

  因为使用这种形式是为了代码的简洁,进行嵌套反而违背了这种目的。

 

列表生成式

   列表生成式是一种简便的生成列表的语法,它的作用是快速的生成列表。

 

 

字典生成式

  如果想只通过一个列表就生成字典,可以借助enumerate方法(枚举)。

  enumerate的作用是返回两个值,一个是数字,相当于列表的索引,另一个是列表的元素。

  通过enumerate方法可以将索引值当做k值,元素当做v值来快速生成字典。

 

 

匿名函数

  匿名函数指的是没有函数名的函数。

  语法格式为:

    lambda 形参:返回值。

  由于没有名字,使用匿名函数需要连关键词一起写,单独使用时其实并不方便 ,所以一般和其他函数配合使用。

 

 

posted @   临江沂水  阅读(279)  评论(0编辑  收藏  举报
编辑推荐:
· 基于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最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示