装饰器补充:wraps装饰器应该加到装饰器最内层的函数上
一、什么是函数递归
函数的递归调用时函数嵌套调用的一种特殊形式,在调用一个函数的过程中又直接或者间接地调用该函数本身,称之为函数的递归调用。
二、递归调用必须有俩个明确的阶段:
1.回溯:一次次递归调用下去,说白了就一个重复的过程,但需要注意的是每一次重复问题的规模都应该有所减少,
直到逼近一个最终的结果,即回溯阶段一定要有一个明确的结束条件。
2.递推:往回一层一层推算出结果。
三、递归调用就是一个重复的过程,但是每一次重复问题的规模都应该有所减少,并且应该满足某种条件的情况下结束重复,开始进入
递推阶段。
四、算法:是如何高效率的解决某一个问题的方法/套路
二分法
五、三元表达式实现的效果就是:条件成立的情况下返回一个值,不成立的情况下返回另外一种值。
res=条件成立情况下返回的值 if 条件 else条件 不成立情况下返回的值
六、匿名函数:就是没有名字的函数 为何要用匿名函数:
用于仅仅临时使用一次的场景,没有重复使用的需求
七、匿名函数的精髓就是没有名字,为其绑定名字是没有意义的
八、可以通过max函数的key参数来改变max函数的比较依据,运行原理:
max函数会“for循环”出一个值,然后将该值传给key指定的函数
调用key指定的函数,将拿到的返回值当作比较依据
九、
max 最大值
min 最小值
sorted 排序
map 把一个列表按照我们自定义的映射规则映射成一个新的列表
filter 从一个列表中过滤出符合我们过滤的值(运行原理:相当于for循环取出每一个人名,然后传给匿名函数,将调用匿名函数返回值为True的那个人名留下来)
reduce 把多个值合并成一个结果