当前位置:   article > 正文

函数递归调用

函数递归调用

微信公众号搜索【程序媛小庄】,关注半路出家的程序媛如何靠python开发养家糊口~

引入

函数既可以嵌套定义也可以嵌套调用。嵌套定义指的是在定义一个函数时在该函数内部定义另一个函数;嵌套调用指的是在调用一个函数的过程中函数内部有调用另一个函数。而函数的递归调用指的是在调用一个函数的过程中又直接或者间接的调用该函数本身。

函数递归介绍

函数递归就是函数的递归调用,是函数嵌套调用的一种特殊形式,具体就是指在调用一个函数的过程中直接或者间接的调用到本身,递归的本质就是循环做重复的事情。

在调用func的过程中又调用func,这就是直接调用函数本身;

image-20210526114004480

在调用func的过程中调用foo,而在调用foo的过程中又调用func,这就是间接调用func本身。

image-20210526134328793

通过上面的分析,两种情况下的函数递归调用都是一个无限循环的过程,Python为了防止函数递归进入无限循环对函数递归调用的深度做了限制,一旦超出限制就会抛出异常。

def foo():
    print('foo')
    func()
def func():
    print('func')
    foo()

func()

'''
程序运行结果:
RecursionError: maximum recursion depth exceeded while calling a Python object(超过最大递归深度)
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

因此为了避免函数递归调用报错,就必须在满足某中条件的情况下结束对函数的递归调用。

def foo(n):
    if n == 1
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/476524
推荐阅读
相关标签
  

闽ICP备14008679号