递归函数实例: 搜索当前目录下的所有嵌套目录

python基础之函数嵌套调用   实际开发过程中,经常会遇到很多完全相同或者非常相似的操作,这时,可以将实现类似操作的代码封装为函数,然后在需要的地方调用该函数。这样不仅可以实现代码的复用,还可以使代码更有条理性,增加代码的可靠性。下面我们来介绍一下python的函数嵌套调用相关内容。  Python还允许在一个函数中调用另外一个函数,这就是函数的嵌套调用。   Python支持函数的递归调用,所谓递归就是函数直接或间接地调用其本身。   例:计算1!+2!+3!+…+10!的值并输出,使用函数的嵌套调用实现。   结果如下。  直接递 阅读详情

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//列出一个目录下所有目录(包括嵌套)的函数
procedure GetDirs(dirName: string; List: TStrings);
var
  SRec: TSearchRec;            {定义 TSearchRec 结构变量}
  dir: string;
const
  attr: Integer = faDirectory; {文件属性常量, 表示这是文件夹}
begin
  dirName := ExcludeTrailingBackslash(dirName) + '/'; {不知道最后是不是 /; 先去掉, 再加上}
  dir := dirName + '*.*'; {加上 /; *.* 或 * 表示所有文件, 系统会把目录也当作一个文件}

  if FindFirst(dir, attr, SRec) = 0 then {开始搜索,并给 SRec 赋予信息, 返回0表示找到第一个}
  begin
    repeat
      if (SRec.Attr = attr) and              {如果是文件夹}
         (SRec.Name <> '.') and              {排除上层目录}
         (SRec.Name <> '..') then            {排除根目录}
       begin
         List.Add(dirName + SRec.Name);      {用List记下结果}
         GetDirs(dirName + SRec.Name, List); {这句就是递归调用, 如果没有这句, 只能搜索当前目录}
       end;
    until(FindNext(SRec)<>0);                {找下一个, 返回0表示找到}
  end;

  FindClose(SRec);                           {结束搜索}
end;



{测试}
procedure TForm1.Button1Click(Sender: TObject);
var
  list: TStrings;
begin
  list := TStringList.Create;

  GetDirs('C:/Downloads', list);
  Memo1.Lines := list;

  list.Free;
end;

end.

保姆级教程:用WorkVisual 6.0给你的KUKA机器人硬件做一次‘全身体检’与配置检查 本文详细介绍了如何使用WorkVisual 6.0对KUKA机器人进行全面的硬件诊断与配置检查。从环境准备到核心硬件模块检查,再到安全系统合规性验证,提供了保姆级教程,帮助技术团队快速掌握数字化诊断方案,提升工业机器人的健康管理效率。 阅读详情

相关推荐

TOEIC托业词汇汇总(完整版)

1.appointment 约会,约定2.attendance 出席人数;出席3.cabinet 橱柜4.calendar 日历;月历;行事历5.clerk 办事员,书记6.directory 人名住址薄7.duplicte 复制;副本8.filing 归档9.in-tray 待处理文件盒10.monitor 检测;监视;追踪11.out-tray 已处理文件盒12.partition 分隔;分隔物(如墙壁等)13.postage 邮费。

weixin_39676449的博客 1万+

linux常用指令

输出:/data/approot/appintent/data/code/tojava.py:133: msg_content = ac.send_origin + today + “【】意图识别:”1)linux下查找某个文件位置的方法https://blog.youkuaiyun.com/gray13/article/details/6365654。您可以使用选项 -p 来创建嵌套目录结构。ln -s a b 中的 a 就是源文件,b是链接文件名, 其作用是当进入b目录,实际上是链接进入了a目录。

woomay的博客 668

告别时钟树平衡噩梦:在Innovus中巧妙设置stop/ignore pin来优化分段时钟网络

本文深入探讨了在Innovus工具中利用stop/ignore pin优化分段时钟树网络的高阶技巧。针对数字IC后端设计中的时钟树平衡难题,详细解析了特殊引脚属性的战略应用场景和配置方法,帮助工程师有效解决SoC设计中复杂的时钟结构问题,显著提升时序收敛效率。

weixin_30836759的博客 293

如何安全地创建嵌套目录?

如何检查要写入文件的目录是否存在,如果不存在,则使用 Python 创建目录?

HuntsBot的博客 891

告别电机啸叫!手把手教你配置TMC5160的StealthChop2静音模式(附参数自整定避坑指南)

本文详细介绍了如何通过配置TMC5160的StealthChop2模式彻底消除3D打印机电机噪音。从硬件准备到参数自整定,再到高级调优与异常处理,手把手教你实现实验室级别的静音效果,提升打印质量和使用体验。

weixin_33724659的博客 488

Verilog——反相器

反相器代码: module inv( A, Y );//A,Y是端口 //定义端口属性 input A; output Y; //定义输入输出关系 assign Y=~A;//Y等于A的反 endmodule //inv是module的名字

weixin_41788560的博客 9501

Linux每日小知识(第二课)

Linux常用命令 常用Linux命令的基本使用 通用命令: cd 目录名 (用于目录间的切换) 示例:cd / (前往根目录) cd /opt (前往根目录下的 opt目录下) cd .. (返回上一级目录) cd - (可以在最近的两次目录之间切换) 1.目录(文件夹)常用...

cyy296534092的博客 459

Linux命令创建多级嵌套目录

Linux命令创建多级嵌套目录 在进行Linux操作或者编写shell脚本时,会遇到要创建文件目录的问题,下面介绍一下几种创建目录的方式。 在当前目录下创建目录 mkdir dirName 创建多级目录 mkdir -p dirName/subName/src 或者 mkcd dirName/subName/src 表示在当前目录下创建一个 dirName/subName/src目录 而不是按如下方式一层一层创建 mkdir dirName cd dirName mkdir subName cd

luckjump的博客 1万+

深度学习特征融合(feature fusion)操作详解

特征融合是指在深度神经网络中,将来自不同来源(如不同网络分支、不同模态、不同时间步、不同空间尺度或不同抽象层级)的特征表示进行有策略地整合,以生成更具判别性、鲁棒性和语义丰富性的联合特征表示。其核心目标是最大化信息互补性,最小化信息冗余与噪声干扰。关键问题:如何“有效”融合?——这取决于任务需求、数据特性、计算资源和融合机制的设计。✅ 是否对齐了空间/通道/模态?✅ 融合方式是否与任务匹配?(检测需定位+语义 → 多尺度融合)✅ 是否引入可学习机制提升适应性?✅ 是否控制了计算开销?

浩瀚之水的专栏 793

程序化广告ADX系统架构设计与实现

摘要: 本文详细介绍了程序化广告交易平台(ADX)的系统架构设计与实现。ADX作为连接广告主与媒体的核心平台,采用基于腾讯云和阿里云的微服务架构,包含网络基础设施、负载均衡、消息处理、核心业务服务和多级数据存储等层次。重点解析了Kafka消息队列处理高并发广告请求、Redis实时统计关键指标等核心技术实现,并提供了Java代码示例展示广告请求处理、竞价流程等核心功能。该系统通过分层设计和分布式组件,实现了高性能、高可用的程序化广告交易能力。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 768

递归嵌套列表

一个多表的建立(该列表存储在目录)并输出的项目列表 例如下面的附图: 能够看出输出的仅仅是输出了外列表 当然也能够多次循环输出每个子项:例如以下图所看到的 注:isinstance(object, classinfo)为python的内置函数,用来推断对象的类型 这是三层循环,假设是非常多次循环再用for循环输出就太麻烦了, 对于这样的情况须要建立一个函数。递归...

weixin_33712987的博客 634

基于STM32F103设计的智能门锁(支持多种开锁解锁方式)

这个智能锁模型是基于STM32平台开发的,支持多种开锁方式。其中,一种是使用RC522射频卡读卡器读取IC卡卡号和内部数据,并验证身份后开锁;另一种是通过连接蓝牙地址来确认业主身份,实现了蓝牙自动开锁功能;最后一种是通过ESP8266连接腾讯云物联网平台,并且用户可以通过微信小程序“腾讯连连”进行远程开锁和关锁。这样,用户就可以选择最方便的方式来进行开锁操作了。

3万+

理解 Delphi 的类(十) - 深入方法[28] - 递归函数实例: 搜索当前目录下的所有嵌套目录...

为什么80%的码农都做不了架构师?>>> ...

weixin_34007291的博客 98

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C语言的库函数、自定义函数、嵌套函数,以及递归函数

函数是C语言和C++很重要的部分,从它们本身有的系统的库函数,到我们自定义类型的函数。我们需要了解进一步地了解它们,掌握它们,使用它们。让我们一起学习,一起探索,一起实现C/C++的这块重要的语言知识吧!!!

Williamtym的博客 1505

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python——使用“阶乘的计算”来详细解释什么是递归函数

递归函数是一种强大的编程工具,能够解决许多复杂的问题。然而,在使用递归函数时,需要谨慎地定义基本情况和递归步骤,以避免无限循环调用和栈溢出错误。此外,还需要考虑递归实现的效率和内存使用情况,并在必要时使用迭代或其他算法来替代递归。

qq_53810226的博客 1707

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

php 目录树,PHP类搜索定位目录树的具体实现方式解析

PHP类搜索定位目录树的具体实现方式解析大家现在也许对PHP语言比较感兴趣,因为它能够帮助我们很轻松的建设一个功能强大的网站。今天我们将向大家介绍的是有关PHP类搜索定位目录树的方法。大多数时候,在嵌套的PHP结 构里进行迭代需要你写出能够一个按顺序穿过层级、并检查其中每一个元素的递归函数。但是递归函数是一个很复杂而且杂乱的东西,大多数开发者(包括我自己) 并不是真正喜欢使用它们。这就是为什么当我...

weixin_42303078的博客 326

php是如何根据路径找目标,利用正确的PHP类搜索定位目录树

大多数时候,在嵌套的结构里进行迭代需要你写出能够一个按顺序穿过层级、并检查其中每一个元素的递归函数。但是递归函数是一个很复杂而且杂乱的东西,大多数开发者(包括我自己)并不是真正喜欢使用它们。这就是为什么当我的上一个项目需要为一个单独文件扫描一个目录层级时(一个典型的递归函数任务),我甚至没有考虑过要循环自己的代码。我取而代之地直接使用了PEAR和它的File_Find类,免除了我搜索多层目录结构的...

weixin_36431035的博客 254

「C系列」C 递归及递归函数有哪些应用场景

在C语言中,递归是一种强大的编程技术,它允许函数直接或间接地调用自身。递归函数必须有一个或多个基本情况(base case),以便在达到某个条件时停止递归调用,否则它将无限循环下去。请注意,递归函数需要谨慎使用,因为它们可能会导致栈溢出(stack overflow)错误,特别是当递归深度非常大时。递归函数必须有一个或多个基本情况(base case),以便在达到某个条件时停止递归调用,否则它将无限循环下去。计算一个数的阶乘(factorial)是递归函数的一个经典应用。汉诺塔问题是一个经典的递归问题。

日常笔记/总结/系列知识梳理 1458

C语言递归函数:从核心原理到实战应用,新手必看

递归是计算机科学中一种核心的问题分解思想,其本质是将一个复杂问题分解为多个同类型的、更小的子问题,直到子问题小到可以直接解决(基线条件)。理解递归调用栈模型是掌握其执行原理的关键,它揭示了函数调用时内存的分配与回收过程。递归的技术价值在于为处理具有自相似性的数据结构(如树、嵌套JSON)提供了极其简洁优雅的解决方案,其应用场景广泛,包括目录树遍历、分治算法和回溯问题。本文以C语言为例,通过阶乘、斐波那契数列和汉诺塔等经典案例,深入拆解递归的**两大要素**与**调用栈模型**,并针对**栈溢出**和**性能

weixin_34416754的博客 343

Python花式编程:多层嵌套列表扁平化

封面图片:《Python程序设计基础(第2版)》,ISBN:9787302490562,董付国,清华大学出版社图书详情:好消息:智慧树网APP“知到”中搜索“董付国”可以免费观看《Pyth...

董付国的Python专栏 687

利用正确的PHP类搜索定位目录树

大多数时候,在嵌套的PHP结构里进行迭代需要你写出能够一个按顺序穿过层级、并检查其中每一个元素的递归函数。但是递归函数是一个很复杂而且杂乱的东西,大多数开发者(包括我自己)并不是真正喜欢使用它们。这就是为什么当我的上一个项目需要...

cjqbk811121的博客 201

用VB函数Dir实现递归搜索目录(转 )

用VB函数Dir实现递归搜索目录 我在很久以前就实现了这个方法了.它没有采用任何的控件形式.也没有调用系统API函数FindFirst,FindNext进行递归调用,和别人有点不同的就是我用的是VB中的Dir()函数.事实...

csdn864883的博客 316

递归、搜索与回溯算法 —— 名词解析

递归、搜索与回溯算法 —— 名词解析

祯的博客 1487

java 递归 算法_Java递归函数与算法讲解系列二

在上一篇文章中讲了递归函数的基本原理和示例,本篇继续结合具体案例讲解递归在现实中的应用。用递归轨迹说明标尺绘图递归drawInterval方法的执行可以使用递归跟踪可视化。然而,drawInterval的跟踪要比factorial示例复杂得多,因为每个实例都进行两次递归调用。为了说明这一点,我们将以一种类似于文档大纲的形式显示递归跟踪。见图:调用drawInterval(3)的部分递归跟踪。dra...

weixin_42509708的博客 281
上一篇: 回调函数
下一篇: 链表与数组的异同
RegeditNo1
博客等级 码龄16年 2粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值