14.Python编程:递归函数

作者: TensorFlow开发者 | 来源:发表于2018-04-04 16:26 被阅读3次

定义一个函数时,是可以调用其他函数的。特殊地,当函数内部调用自己时,就是递归现象。说白了,就是函数自己调用自己。在递归函数中,要特别注意的是结束条件。如果没有结束条件,就造成了死循环,最终会导致内存溢出。

阶乘:factorial;
递归:recursion
# 求n阶阶乘
def factorial(n):
    # 结束条件
    if n == 1 or n == 0:
        return 1
    return n * factorial(n - 1)

print('阶乘:', factorial(5))

运行结果:

阶乘: 120

再次提示:

在递归函数中,要特别注意的是结束条件。如果没有结束条件,就造成了死循环,最终会导致内存溢出。上面例子中,如果忘记了结束条件n==1 or n==0时,就会报错了:

# 求n阶阶乘
def factorial(n):
    # 错误实例,注释掉结束条件
    # if n == 1 or n == 0:
    #     return 1

    return n * factorial(n - 1)

print('阶乘:', factorial(5))

运行结果:

  File "F:/python_projects/13recursion.py", line 9, in factorial
    return n * factorial(n - 1)
RecursionError: maximum recursion depth exceeded

意思是:递归错误:超过了最大递归深度这是上面例子中缺少结束条件造成的,导致递归函数不知何时结束调用。

小结:
本文学习Python中的递归函数。在递归函数中,要特别注意的是结束条件。Python中,缺少结束条件的递归函数,在调用时,会报:RecursionError: maximum recursion depth exceeded递归错误:超过了最大递归深度。


更多了解,可关注公众号:人人懂编程


微信公众号:人人懂编程

相关文章

  • 14.Python编程:递归函数

    定义一个函数时,是可以调用其他函数的。特殊地,当函数内部调用自己时,就是递归现象。说白了,就是函数自己调用自己。在...

  • 029_wz_hm_函数的递归

    函数的递归 函数调用自身的编程技巧成为递归 递归函数的特点 特点: 一个函数内部调用自己 函数内部可以调用其他函数...

  • python---基本知识20之递归函数&函数作用域

    递归函数其实不是编程里面所定义的函数,而是数学里面的递归,传递的是一种规律,所以叫递归函数; 我们写递归函数,其实...

  • 递归函数

    递归函数定义 编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。 要点 ...

  • python的递归函数学习

    编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联...

  • 递归讲解

    编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联...

  • 《算法图解》读书笔记——递归

    递归 程序调用自身的编程技巧称为递归。每个递归函数有基线条件和递归条件两部分,递归条件是指函数调用自己,基...

  • 函数的递归

    函数调用自身的 编程技巧 称为递归 1.1 递归函数的特点 特点 一个函数 内部 调用自己函数内部可以调用其他函数...

  • Python 之路03 - Python基础3

    本节内容 函数与函数式编程 函数式编程之参数详解 局部变量与全局变量作用域嵌套函数 递归 函数式编程介绍 高阶函数...

  • 「Python」递归函数的特点+代码案例

    函数调用自身的编程技巧称为递归。 一、递归函数的特点 特点: 一个函数内部调用自己,函数内部可以调用其他函数,当然...

网友评论

    本文标题:14.Python编程:递归函数

    本文链接:https://www.haomeiwen.com/subject/ugokhftx.html