Python之递归函数

来源:互联网 发布:怎么更换淘宝的实名制 编辑:程序博客网 时间:2024/05/17 02:16

如果一个函数在函数内部调用函数本身,那么这个函数就是递归函数。例如用递归函数计算阶乘。

>>> def fact(n):...     if n==1 :...         return 1...     return n*fact(n-1)... >>> fact(1)1>>> fact(7)5040>>> fact(999)Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "<stdin>", line 4, in fact  File "<stdin>", line 4, in fact  File "<stdin>", line 4, in fact  [Previous line repeated 994 more times]  File "<stdin>", line 2, in factRecursionError: maximum recursion depth exceeded in comparison

tips:

  • 递归函数逻辑清晰但过深的调用会导致栈溢出
  • 尾递归可以解决栈溢出,但Python标准解释器并没有针对尾递归优化,所以任何递归函数都会导致栈溢出

以上内容摘抄自于廖雪峰的官方网站-Python教程-递归函数

原创粉丝点击