一递归函数
我们老师经常喜欢讲的一句话就是:人理解函数,神理解递归,那么什么是递归函数?
递归函数:在一个函数里面调用函数本身,也就是说这个函数里面出现了和函数一样的名字
例如:
def func(n): print('我是递归%s' %n) n=n+1 func(n) n=10 func(n)
上面的例子,它会无限递归下去,那么,它到什么时候停止呢,天荒地老,还是海枯石烂?
经过实际证明,它内部有个限定值:997,一旦到了998它就报错了,函数的每次调用都会产生一个名称空间,是要消耗内存的,这么多的递归基本能解决问题了,没有的话,需要优化代码了。
那是不是可以突破这个限制呢,答案是可以
import sys print(sys.setrecursionlimit(‘任意值’))
通过上面的代码,你可以修改为任意值,但是这个情况似乎只能当作一个热闹,修改是没有意义的。
二递归示例
递归很多的场景是本次的操作需要前一次的数据,以此类推下去。。。
例如阶乘
def factorial(n): if n==1:return n else: return n*factorial(n-1) print(factorial(10))