python递归函数

高洛峰
高洛峰 原创
2016-11-16 10:51:17 1114浏览

函数就像一个盒子,将相关的一些功能打包成一个函数,以供调用。函数内部可以调用其他函数,也可以调用这个函数自身。
如果一个函数在内部调用函数自身,那么这个就是递归函数。
我们举一个简单的例子。
数学中我们知道100的阶乘,100!=1009998...321.
分解开来,100!=10099!,99!=9998!,98!=98*97!...
那么我们定义一个函数来计算阶乘:

def fact(n):
    return n*fact(n-1)

上面这个函数看起来是一个数字不断地跟与它小1的数相乘,却没有停止的时候。所以我们必须对上述函数进行改造,让它能在n=1的时候,计算完就停下来。

def fact(n):
    if n==0:
        return 1
    else:
        return n*fact(n-1)

递归函数也可以用循环的方式实现。但是递归函数逻辑较为简单。但是在使用递归函数的时候,要注意防止递归函数调用过多导致栈溢出。


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。