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)
    #递归遍历目录下所有文件
  • 相关阅读:
    hdoj 2063 过山车
    hdoj 2112 HDU Today
    hdoj 1874 畅通工程续
    hdoj 2544 最短路
    sound of the genuine
    复习webpack的常用loader
    node-sass安装报错
    react-debug
    react-router 4v 路由嵌套问题
    React 中使用sass
  • 原文地址:https://www.cnblogs.com/lyfstorm/p/10116793.html
Copyright © 2011-2022 走看看