Python:递归函数

本文介绍了Python中的递归函数,包括递归的定义、边界条件和递归的三个部分。通过斐波那契数列的递归实现为例,探讨了递归的性能问题,指出递归深度限制可能导致RecursionError。此外,还讨论了如何优化递归性能,建议在有限次递归的情况下考虑使用循环代替,以提高效率并避免内存溢出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

递归函数的定义:

  • 函数直接或间接调用自身就是递归
  • 递归函数需要有边界、递归前进段、递归返回段
  • 递归一定要有边界条件
  • 当边界不满足的时候,递归前进
  • 当边界条件满足的时候,递归返回

斐波那契数列【用递归来实现】

用for循环来看是怎么写的:

per = 0    
cur = 1
print(per,cur,end=" ")
n = 4
for i in range(n-1):
    per,cur= cur ,per + cur
    print(cur,end=" ")

结果:
0 1 1 2 3 



用递归怎么来写
斐波那契公式:F(0)=0  ,F(1)=1 , F(n)=F(n-1)+F(n-2)


def fib(n):
    return 1 if n < 2 else fib(n-1)+fib(n-2)

for i in range(4):
    print(fib(i),end=" ")


结果:
1 1 2 3 5

 递归是有最大递归深度的一单超过这个深度,系统就会抛出错误

def fool(b,b1=3):
    fool(b1)

fool(3)

结果:
[Previous line repeated 996 more times]
RecursionError: maximum recursion dept
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值