zoukankan      html  css  js  c++  java
  • 递归函数

    递归的定义: 在函数中调⽤函数本身,就是递归

    # 一个简单的递归函数
    def func(): print("我是谁")
        func()
    func()

    递归的最大深度——官方给出的是最大1000,实测win上是998,Mac上是997.(面试时候的标准回答)

    def foo(n):
        print(n)
        n += 1
        foo(n)
    foo(1)
    测试最大递归深度

    递归的应用:
      我们可以使用递归来遍历各种树形结构, 比如我们的文件夹系统. 可以使用递归来遍历该文件夹中的所有文件.

    import os
    def func(filepath,n):   # 传入根文件夹路径  # "d:/a/"
        files = os.listdir(filepath)  # 打开文件夹,列出里面的所有文件名(返回的是列表)
        for el in files:  # 这里的el是文件(或夹)的名字  b, c
            # 将文件名还原为文件路径
            zpath = os.path.join(filepath, el)  # "d:/a/b" 子文件夹路径    将文件夹的名字转换为路径:根文件夹路径+自己的文件夹名字,进行拼接,固定写法
            if os.path.isdir(zpath):  # 判断传入的路径是否是文件夹
                print('	' * n, el)  # 每层的文件夹缩进n个tab的距离再打印文件夹名字
                func(zpath, n+1)  # 每递归一次(即又打开一层文件夹),就多缩进一个tab
            else:  # 是文件
                print('	' * n, el)  # 直接打印名字就行,不需要再进去一层了
    
    func("d:/a/",0)
    #递归遍历目录下所有文件
  • 相关阅读:
    jdk1.8安装与配置
    java编译器——idea的安装
    原型设计作业
    案例分析作业
    202103226-1 编程作业
    阅读任务
    准备工作
    java课程总结
    第十四周总结
    第十三周总结
  • 原文地址:https://www.cnblogs.com/lyfstorm/p/10116793.html
Copyright © 2011-2022 走看看