二十五、Python递归函数与原理分析

二十五、Python递归函数与原理分析以最典型的递归函数求阶乘为例:比如说要计算5的阶乘:factorial = 5*factorial。factorial = 1 # 这个是程序的

大家好,欢迎来到IT知识分享网。

二十五、Python递归函数与原理分析

递归函数与原理分析

什么是递归函数

所谓递归函数,就是在一个函数体内调用它自身。递归函数包含了一种隐藏的循环,它会重复执行某段代码,但是这种重复无需循环显式控制。

递归函数使用需要有两大要素:

  • 递归调用的方法
  • 终止条件

递归函数示例

以最典型的递归函数求阶乘(factorial)为例:

比如说要计算5的阶乘: factorial(5) = 5*factorial(4) factorial(4) = 4*factorial(3) factorial(3) = 3*factorial(2) factorial(2) = 1*factorial(1) factorial(1) = 1 # 这个是程序的出口 
  • 代码
def factorial(n): if n==1: return 1 return n*factorial(n-1) # 调用 print(factorial(5))
二十五、Python递归函数与原理分析

示例程序和结果

递归调用内存分析

二十五、Python递归函数与原理分析

递归调用内存示意图

递归调用优点和缺点

  • 优点:
    • 递归使代码看起来更加整洁、优雅
    • 可以用递归将复杂任务分解成更简单的子问题
  • 缺点:
    • 虽然有代码简洁的优点,但是时间和空间消耗比较大;
    • 每一次函数调用都需要在内存栈中分配空间以保存参数,返回地址以及临时变量,而且往栈里面压入数据和弹出都需要时间;
    • 递归还有栈溢出的问题,每个进程的栈容量是有限的;
二十五、Python递归函数与原理分析

下篇预告:匿名函数与Lambda表达式

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/50845.html

(0)
上一篇 2024-08-22 19:15
下一篇 2024-08-22 21:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信