社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
一:递归函数(recursion)
import time
def story():
time.sleep(1)
print(“从前有座山”)
print(“山上有座庙”)
print(“庙里有个老和尚”)
story() #直接调用自身
story()
2. 函数间接调用自身的递归
def fa():
fb()
def fb()
fa()
fa()
print(‘’递归结束’’)
说明:此例中首先调用了函数fa(),在函数fa()里面又间接调用了函数fb(),函数fb()又调用了函数fa(),依次循环,永远都不会输出后面的print语句。
3. 递归用法说明:
递归一定要控制递归的层数,当符合某一条件时要终止递归。
几乎所有的递归都能用while循环来代替。
示例:
def fx(n):
print(‘递归进入第’, n, ‘层)
if n == 3:
return
fx(n + 1)
print(‘递归退出第’, n, ‘层)
fx(1)
print(‘程序运行结束’)
4. 递归的优缺点
递归可以把问题简单化,让思路更清晰,代码更简洁
递归因系统环境影响大,当递归深度太大时,可能会出现不可知的后果。
用递归的方法求:1+2+3……+98+99+100的和。
假设实参为100,把100传给形参,设置递归的终止点,如果小于等于1,返回终止点1,递归结束,否则返回两个的和(上一个数,加上下一个数(参数减1)的和。)如:return 100 + 99;代码如下图:
示例2:求5的阶乘。
说明:5的阶乘等于5 X 4 X 3 X 2 X1,代码如下图:、
推荐我们的Python学习扣qun:784758214 ,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF,实战源码】,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每天都有大牛定时讲解Python技术,分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地
总结:递归可以直接或者是间接调用,递归本身是一种循环,可在内部不用循环语句,实现循环语句的功能,递归通常用在遍历查找文件中(如查找某个文件是否存在这个文件夹中,这时候我们就可以使用递归的方法:遍历文件名称、大小,一个一个的找。)而用循环却无法实现,因为无法确定循环的次数。大家要注意一点,python规定递归的深度是1000,所以我们在做数学运算加法等的时候,只能求1000以内的数,不能超过1000。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!