今天看啥  ›  专栏  ›  酷飒de小姐姐

递归调用

酷飒de小姐姐  · 简书  ·  · 2021-03-31 09:53

递归调用是一种特殊的嵌套调用,是指某个函数调用自己或者调用其他函数后再次调用自己。由于不能无限嵌套调用,所以某个递归函数一定存在至少两个分支,一个是退出嵌套,不再直接或者间接调用自己;另外一个则是继续嵌套。一般通过函数的输入参数来决定走哪个分支,所以递归函数一般都是带有参数的。

最常见的递归用法是求一个整数的阶乘,如2的阶乘等于1×2,3的阶乘等于1×2×3。

递归

默认情况下,函数调用深度的最大值为1000,如果达到或者超过1000就会出现错误信息。可以通过下面的代码来查看该系统的设置。

>>> import sys

>>> sys.getrecursionlimit() # 得到最大调用深度

如果希望修改该系统值,也可以通过sys模块的接口函数来实现。如希望最大函数调用深度为10000,那么可以使用下面的代码进行修改:

>>> import sys

>>> sys.setrecursionlimit(10000) # 设定最大调用深度

例子:

1.斐波拉契级数

有这样一个数列:1,1,2,3,5,8,13,21,34…。其第一元素和第二个元素等于1,其他元素等于其前面两个元素的和。

递归



原文地址:访问原文地址
快照地址: 访问文章快照