脚本宝典收集整理的这篇文章主要介绍了递归函数、算法和生成式,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
递归指的是函数在运行过程中直接或间接的调用了自身。
递归的特点有两个。
1.递推:
指一层层往下推导答案(每次的推导相较前一次难度有所下降)。
2.回溯:
依据最后的结论倒推出最初需要的答案。
函数的递归一定要有结束条件,不然就会报错。
为防止无限递归的情况,官网表示python默认的最大递归深度为1000次。(由于电脑性能等原因也可能是998、997次)
可以通过sys方法来查看和设置最大递归深度
算法指的是解决问题的高效方法。二分法属于入门级的算法。
当想要在一堆的有序的数字中找到某个数字时,可以使用二分法来有效的达成目的。
二分法的原理:
找到这堆数字的中间的数,将它与要找的数进行大小的比较,如果较大,则在较大的一半中继续切分。
如果较小则在较小的一半中切分,直到找到要找的数。
二分法的缺陷:
只能在有序的数据集中使用,并且如果要找的数就在开头,反而不如一个个数的笨办法有效。
三元表达式是一种代码的简便写法,当功能需求只是二选一时推荐使用三元表达式。
三元表达式格式:
条件达成采用的值 if 需要达成的条件 else 条件不达成时采用的值
三元表达式可以进行嵌套,但不推荐这种形式。
因为使用这种形式是为了代码的简洁,进行嵌套反而违背了这种目的。
列表生成式是一种简便的生成列表的语法,它的作用是快速的生成列表。
如果想只通过一个列表就生成字典,可以借助enumerate方法(枚举)。
enumerate的作用是返回两个值,一个是数字,相当于列表的索引,另一个是列表的元素。
通过enumerate方法可以将索引值当做k值,元素当做v值来快速生成字典。
匿名函数指的是没有函数名的函数。
语法格式为:
lambda 形参:返回值。
由于没有名字,使用匿名函数需要连关键词一起写,单独使用时其实并不方便 ,所以一般和其他函数配合使用。
以上是脚本宝典为你收集整理的递归函数、算法和生成式全部内容,希望文章能够帮你解决递归函数、算法和生成式所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。