zoukankan      html  css  js  c++  java
  • python基础-函数递归

    函数递归

    概念:直接或间接地重复调用函数本身,是一种函数嵌套调用的表现形式。

    直接调用:在函数内部,直接调用函数本身

    def foo():
        print("这是foo函数")
        foo()
        
    foo()  # 进入死循环
    

    间接调用:两个函数之间相互调用间接造成递归

    def a_func():
        print("这是a_func函数")
        b_func()
        
    def b_func():
        print("这是b_func函数")
        a_func()
        
    a_func()
    

    话说,大家千万不要执行以上代码!!!!电脑配置不好,宕机了的,不要来找我!以上两个例子都陷入了死循环。而这确实是递归!重点来了!

    单纯递归调用时,没有任何意义

    如果想要有意义,必须遵循两个条件:

    1. 回溯:重复地执行,每一次执行都要拿到一个更接近结果的结果。回溯必须要有一个明确的终止条件
    2. 递推:当回溯找到一个终止条件后,开始一步一步往上递推。
    def age(n):
        if n == 1:
            return 18
        # 此处必须写上return 才能实现递推
        return age(n - 1) + 2
    
    
    print(age(5))
    

    扩展

    递归的经典案例习题
    1、递归求阶乘 1!+2!+3!+4!+5!+...+n!
    2、使用递归打印斐波那契数列,(前两个数的和得到第三个数,如:0 1 1 2 3 5 8...)
    3、一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值
    
  • 相关阅读:
    my first android test
    VVVVVVVVVV
    my first android test
    my first android test
    my first android test
    ini文件
    ZZZZ
    Standard Exception Classes in Python 1.5
    Python Module of the Week Python Module of the Week
    my first android test
  • 原文地址:https://www.cnblogs.com/xiaodan1040/p/11869064.html
Copyright © 2011-2022 走看看