在函数中调用本函数. 就是递归
def func():
print(\"我是谁\")
func()
func()
在python中最大递归深度为1000:
In[26]: import sys
In[27]: sys.getrecursionlimit() # 虽然我们查询到的结果是1000,但是实际上却跑不到1000,通常是998或者997
Out[27]: 1000
递归的应用:计算斐波那契数列 f(0) = 1 f(1) = 1 f(n) = f(n-1) + f(n-2)
In[35]: def fib(n):
...: if n == 0:
...: return 1
...: if n == 1:
...: return 1
...: return fib(n-1) + fib(n-2)
...:
In[36]: fib(5)
Out[36]: 8
In[37]: fib(10)
Out[37]: 89
总结:
- 递归函数总是涉及到压栈和出栈的过程
- 递归函数总是压栈,知道遇到退出条件,然后出栈
- Python中递归函数有深度限制,可以通过
sys.getrecursionlimit()得到深度限制,可以通过sys.setrecursionlimit调整递归深度限制 - 递归函数在Python非常慢,并且有深度限制,所以 因尽量避免使用递归
继续阅读与本文标签相同的文章
-
Kotlin的分享
2026-05-19栏目: 教程
-
腾讯发布智慧社区标准化解决方案,目前已覆盖超过7000个小区
2026-05-19栏目: 教程
-
四方科技:冷链装备龙头 罐箱业务全球领先
2026-05-19栏目: 教程
-
一眼望去 都是中国好CP的形状
2026-05-19栏目: 教程
-
前端开发深水区讨论
2026-05-19栏目: 教程
