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 匿名函数

  就是没有名字的函数

  匿名函数只用于临时使用一次的场景

  匿名函数通常用于与其他函数配合使用

posted @ 2020-06-22 15:24  最冷不过冬夜  阅读(150)  评论(0编辑  收藏  举报