如果一个函数在内部调用函数自身,那么这个就是递归函数。
我们举一个简单的例子。
数学中我们知道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)
递归函数也可以用循环的方式实现。但是递归函数逻辑较为简单。但是在使用递归函数的时候,要注意防止递归函数调用过多导致栈溢出。
php入门到就业线上直播课:查看学习
前端(VUE)零基础到就业课程:点击学习
自己动手写 PHP MVC 框架:点击学习
![](http://m.sbmmt.com/img/upload/article/000/000/020/633501a29d313483.png)