python3递归(学习转)

学习了一下python3 的递归,这个东西还真是讨厌,而且不迷有那么多毛病。但不迷是要学会。下面是一些递归的关键部分,总结一下。
递归,就是函数在运行的过程中调用自己。
递归几个特点:
1.必须有一个明确的结束条件,要不就会变成死循环了,最终撑爆系统
2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3.递归执行效率不高,递归层次过多会导致栈溢出
用途:
可以用于解决很多算法问题,把复杂的问题分成一个个小问题,一一解决。比如求斐波那契数列、汉诺塔、多级评论树、二分查找、求阶乘等。
递归效率不高,因为每递归一次,就多了一层栈,递归次数太多还会导致栈溢出,这也是为什么python会默认限制递归次数的原因。但有一种方式是可以实现递归过程中不产生多层栈的,即尾递归
尾递归
在函数最尾部有return,return值是递归形式调用,且返回值与上一层函数无任何依赖。

例子:

def calc(n):
print(n - 1)
if n > -50:
return calc(n-1)

如上内容总结自:https://www.cnblogs.com/Xuuuuuu/p/10165293.html

对原作者表示感谢,讲的比较透彻。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值