最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

python使用递归函数模拟实现树形结构的遍历

XAMPP案例 admin 690浏览 0评论
0Python按照惯例,首先小谭给大家介绍一下递归函数的定义。

如果一个函数在内部不调用其他的函数,而是自己本身的话,那么这个函数就是递归函数。
 
那递归函数需要遵循什么规则呢?
那就是递归函数必须有一个结束条件,否则递归无法结束会一直递归下去,直到到达最大递归深度报错。
接下来,通过两段代码来展示递归函数:
问题:计算5的阶乘
方法一:调用循环实现,不使用递归函数,如下:
 
def jiecheng(n):result=1

for item in range(1,n+1):

result*=item

return result

pass

print(jiecheng(5))

 
方法二:使用递归函数
 
def jiecheng(n):if n==1:

return 1

else:

return n*jiecheng(n-1)

pass

print(jiecheng(5))

 
我们观察以上两段代码可以发现,方法一使用了循环,去遍历从1到n+1中的所有数据,最后调用函数取值。
 
方法二使用了递归函数,首先判断参数n是否为1,否的话返回n*jiecheng(n-1),比方n=5,那么第一段递归返回的值就是5*jiecheng(4),通过层层递归就n=1结束。
 
所以可以得出,递归函数的逻辑更为简单,定义也更加简单。不过在日常开发中,递归函数如果没有明确好结束条件,就会导致栈溢出,造成内存资源紧张,甚至内存泄漏。
 
接下来分享一个使用递归函数来模拟实现树形结构的遍历,也是就如何查找电脑中文件夹中的所有文件,代码如下:
 
import os#引入python中文件操作模块def FindFile(File_path):

listRS=os.listdir(File_path)

#调用os函数,获取该路径下中的所有文件夹

for item in listRS#遍历所有文件夹

full_path=os.path.join(File_path,FileItem)

#获取完整的文件路径

if os.path.isdir(full_path):

FindFile(full_path)

else:

print(FileItem)

pass

else:

return

pass

FindFile(‘E:\\软件’)——此处可选择自己电脑上的文件夹

转载请注明:XAMPP中文组官网 » python使用递归函数模拟实现树形结构的遍历

您必须 登录 才能发表评论!