2020 python学习第十五天————装饰器的叠加与递归和匿名函数
1.1 同时叠加多个装饰器
装饰器的加载顺序是自下而上的
装饰器的执行顺序是自上而下的
2.1 函数的递归调用
指的是在调用一个函数的过程中又直接或者间接地调用了自己
函数的递归调用就是一个循环的过程
递归调用应该遵循的一个大前提是:必须在满足某种条件下结束递归调用,然后向上一层一层返回
2.2 递归调用经历两个阶段
1、回溯:向下一层一层地调用
2、递推:在某一层终止调用,开始向上一层一层返回
2.3 总结
递归调用就是一个循环的过程,循环的次数取决何时结束调用自身
2.4 应用1
list1 = [1, [2, [3, [4, [5, [6, [7, [9, ]]]]]]]] def func(nums_l): for x in nums_l: if type(x) is list: func(x) else: print(x) func(list1)
2.5 应用2:二分法
nums = [-3, 1, 5, 7, 11, 13, 21, 37, 45] find_num = 47 def search(find_num,nums): print(nums) if len(nums) == 0: print('不存在') return mid_index = len(nums) // 2 if find_num > nums[mid_index]: # 查找范围:右半部分 new_nums = nums[mid_index + 1:] search(find_num,new_nums) elif find_num < nums[mid_index]: # 查找范围:左半部分 new_nums = nums[:mid_index] search(find_num,new_nums) else: print("找到啦") search(find_num,nums)
3.1 匿名函数
就是没有名字的函数
匿名函数只用于临时使用一次的场景
匿名函数通常用于与其他函数配合使用