Python中的递归及案例演示

目录

一.什么是递归

二.案例

递归找文件

 步骤

os模块中的三个方法

演示

 最终代码

三.总结


Python中的递归及案例演示_第1张图片

 

一.什么是递归

递归在编程中是一种非常重要的算法
递归:即方法(函数)自己调用自己的一种特殊编程写法

如:
Python中的递归及案例演示_第2张图片

函数调用自己,即称之为递归调用。

 Python中的递归及案例演示_第3张图片

 

二.案例

递归找文件

如图,在D:/test文件夹内,有如下嵌套结构和所属的文件,可以通过递归编程的形式完成
Python中的递归及案例演示_第4张图片

 Python中的递归及案例演示_第5张图片

 Python中的递归及案例演示_第6张图片

 步骤

os模块中的三个方法

  1. os.listdir()                #列出路径下的内容 
  2. os.path.isdir()        #判断该路径是不是文件夹
  3. os.path.exists()        #判断该路径是否存在

演示

import os
#列出该路径的内容
print(os.listdir("D:/test"))
#判断指定路径是不是文件夹
print(os.path.isdir("D:/test"))
#判断指定路径是否存在
print(os.path.exists("D:/test"))

结果是

Python中的递归及案例演示_第7张图片

 最终代码

import os
def get_wenjian(path):
    jiegou = []
    if os.path.exists(path):#判断路径是否存在,这里是路径存在
        for i in os.listdir(path):
            #print(i)       这一语句的输出结果是path路径下的文件名
            new_path=path+'/'+i
            if os.path.isdir(new_path):#判断该路径是不是文件夹,这里是文件夹
                jiegou += get_wenjian(new_path)
            else:#这里不是文件夹,而是普通文件
                jiegou.append(i)

    else:#这里是路径不存在
        print(f"该路径{path}不存在")
        return []

    return jiegou
result=get_wenjian("D:/test")
print(result)
for i in result:
    print(i)

结果是

Python中的递归及案例演示_第8张图片

 

三.总结

1.什么是递归
在满足条件的情况下,函数自己调用自己的一种特殊编程技巧
2.递归需要注意什么?

  • 注意退出的条件,否则容易变成无限递归
  • 注意返回值的传递,确保从最内层,层层传递到最外层

3.os模块的3个方法

  • os.listdir,列出指定目录下的内容
  • os.path.isdir,判断给定路径是否是文件夹,是返回True,否返回False
  • os.path.exists,判断给定路径是否存在,存在返回True,否则返回False

Python中的递归及案例演示_第9张图片

 

你可能感兴趣的:(算法,python中的递归,递归,os模块)