python基础-函数递归

Posted (☄⊙ω⊙)☄嘿!造bug呢~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]]]]]]],用递归取出所有的值

以上是关于python基础-函数递归的主要内容,如果未能解决你的问题,请参考以下文章

Python基础:Python函数文件操作递归

Python基础之函数,递归。

python第三篇 python基础之函数,递归,内置函数

python函数基础:嵌套函数作用域匿名函数递归函数

Python基础第十一天——内置函数的补充内置函数与lambda递归

Java基础之方法的调用重载以及简单的递归