• 初识递归


    了解递归

    在函数中调用自身函数,最大递归深度默认是997或998  ——是python从内存角度出发做的限制

    如果递归次数太多,就不合适使用递归来解决问题

    递归的确定:战内存

    递归的优点:会使代码简单

    修改递归的最大深度

    import sys
    sys.setrecursionlimit(100000)  #数字内容可以随意修改

    例1、

    def age(n):
        if n == 4:
            return 40
        elif n > 0 and n < 4:
            return age(n+1)+2
    print(age(1))    # 8、此处调用了age(1),所以打印出age(1)  46
    
    """
    第一次执行:
    def age(1): 
        if 1 == 4:
            return 40
        elif 1 > 0 and 1 < 4:
            return age(2)+2   #此时会先执行age(1+1),将age(2)返回再次执行   7、此时age(2)为46,将值返回给age(1)
    print(age(1)) # 1、第一次调用,首先先执行age(1),此时n=1   
    
    第二次执行:     
    def age(2):
        if 2 == 4:
            return 40
        elif 2 > 0 and 2 < 4:
            return age(3)+2 # 2、将age(3)返回函数再次执行  6、此时age(3)为 44,将值回给age(2)
    
    
    第三次执行:     
    def age(3):
        if 3 == 4:
            return 40
        elif 3 > 0 and 3 < 4:
            return age(4)+2 # 3、将age(4)返回函数再次执行   5、此时值为 42 ,将值返回给age(3)
            
    第四次执行:     
    def age(4):
        if 4 == 4:    
            return 40   # 4、执行结束,因为谁调用函数,值就会返回给谁,所以40会返还给第三次执行中调用它的函数
        elif 3 > 0 and 3 < 4:
            return age(3+1)+2  
            
    print(age(1))

    能看到递归

    能知道递归的应用场景

    初识递归

    算法--二分查找法

    三级菜单--递归实现

  • 相关阅读:
    放一个Dynamicinputs corresponding to Dynamicknobs的Node源码
    NDK学习笔记(四):OutputContext机制
    NDK学习笔记(三):DynamicKnobs的机制
    OpenEXR的采样机制
    OpenEXR的读取机制
    OpenEXR的输出机制
    虚拟机中安装centOS及破解nuke的方法
    OpenEXR-2.2.0在Win7 x64系统下的安装方法
    NDK学习笔记(二)
    NDK学习笔记(Add.cpp注释)(一)
  • 原文地址:https://www.cnblogs.com/wanglan/p/9558303.html
Copyright © 2020-2023  润新知