美文网首页
Python 39 递归函数

Python 39 递归函数

作者: 秋雨夏磊 | 来源:发表于2022-08-02 06:30 被阅读0次

递归函数是特殊的函数定义方法

在函数内部继续调用自己

#计算阶乘(5!)

factorial =1

for iin range(1, 6):

factorial *= i

print(factorial)

#输出为120,标准的循环写法

#换个思路

def factorial(n):

return  n * factorial(n-1)

print(factorial(5))

[Previous line repeated 996 more times]前一行重复996次以上

RecursionError: maximum recursion depth exceeded递归错误:最大递归深度

运行无穷无尽,直达嵌套最大深度而被迫终止

----------------------------------------------------------------------------------------------------------

def factorial(n):

if n >1:

return  n * factorial(n -1)

else:

return 1

print(factorial(5))

#输出120,增加了退出条件

第一次运行factorial 函数,n= 5,返回5*factorial(4)

第二次运行factorial函数,n=4,返回4*factorial(3)

第三次运行factorial函数,n=3,返回3*factorial(2)

第四次运行factorial函数,n=2,返回2*fanctorial(1)

第五次运行factorial函数,n=1,返回1

回到第四次运行的factorial函数,n=2,返回2*1

回到第三次运行的factorial函数,n=3,返回3*2*1

回到第二次运行的factorial函数,n=4,返回4*3*2*1

回到第一次运行的factorial函数,n=5,返回5*4*3*2*1

建议

递归函数提供了一种简单有效的代码逻辑实现方法

从性能上看,递归效率不高,而且递归的深度有限

相关文章

网友评论

      本文标题:Python 39 递归函数

      本文链接:https://www.haomeiwen.com/subject/hlcrwrtx.html