当前位置: 首页 > news >正文

Python学习从0到1 day28 Python 高阶技巧 ⑧ 递归

那就祝我们爬不同的山,还能回到同一条路上,不是时时见面,但是时时惦记之人

                                                                                                                        —— 24.11.13

递归

1.什么是递归

递归在编程中是一种非常重要的算法

递归:即方法(函数)自己调用自己的一种特殊编程写法

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

2.递归需要注意什么?

① 注意退出的条件,否则容易变成无限递归

② 注意返回值的传递,确保从最内层,层层传递到最外层

3.os模块的3个方法

os.listdir                        列出指定目录下的内容

os.path.isdir                  判断给定路径是否是文件夹,是返回True,否则返回False

os.path.exists                判断给定路径是否存在,存在返回True,否则返回False

4.案例 —— 递归查找文件

最典型的递归场景为找出一个文件夹中全部的文件。

如图,在文件夹内,有如下嵌套结构和所属的文件,可以通过递归编程的形式完成

文件夹:

——切

        ——都

                ——会

                        ——好

                                ——的

                        ——信.txt

                ——相.txt

        ——直.txt

——一.txt

我.txt

'''
演示Python递归操作
需求:通过递归,找出一个指定文件夹内的全部文件
思路:写一个函数,列出文件夹内的全部内容,如果是文件就收集到list如果是文件夹,就递归调用自己,再次判断。
'''
import os'''os.listdir      列出文件夹中所有文件os.path.isdir        判断路径是否是文件夹os.path.exists  判断路径是否存在
'''def get_files_recursion_from_dir(path):'''从指定的文件夹中使用递归方式,获取全部的文件列表:param path:倍判断的文件夹:return:list 包含全部的文件,如果目录不存在或者无文件就返回一个空list'''file_list = []if os.path.exists(path):for file in os.listdir(path):new_path = path + "/" + fileif os.path.isdir(new_path):file_list += get_files_recursion_from_dir(new_path)else:file_list.append(new_path)else:print("你输入的路径有误,文件不存在")return []return file_listif __name__ == '__main__':print(get_files_recursion_from_dir("E:\python.learning\一"))

相关文章:

Python学习从0到1 day28 Python 高阶技巧 ⑧ 递归

那就祝我们爬不同的山,还能回到同一条路上,不是时时见面,但是时时惦记之人 —— 24.11.13 递归 1.什么是递归 递归在编程中是一种非常重要的算法 递归:即方法(函数)自己调用自己的一种特殊编程写法 函数调用自己,即…...

知识见闻 - 苹果手机拨号键长按

苹果手机(iPhone)在拨号界面长按按键时有一些特定的功能。以下是iPhone拨号键盘上长按按键的主要功能: 数字键 0 - 长按可输入""号,用于国际电话拨号 - 这是最常用的长按功能之一,方便用户拨打国际电话 星号…...

在 KubeVirt 中使用 GPU Operator

在 KubeVirt 中使用 GPU Operator 基于最新的GPU Operator版本24.9.0。 原文链接:GPU Operator with KubeVirt — NVIDIA GPU Operator 24.9.0 documentation 1. 简介 KubeVirt 是 Kubernetes 的一个虚拟机管理插件,允许您在 Kubernetes 集群中运行和…...

安慰剂检验Stata代码(全套代码、示例数据及参考文献)

数据简介:随着因果推断方法在实证研究中的使用比例不断提升,越来越多的文章进行安慰剂检验。其检验基本原理与医学中的安慰剂类似,即使用假的政策发生时间或实验组进行分析,以检验能否得到政策效应。如果依然得到了政策效应&#…...

DAY6 线程

作业1&#xff1a; 多线程实现文件拷贝&#xff0c;线程1拷贝一半&#xff0c;线程2拷贝另一半&#xff0c;主线程回收子线程资源。 代码&#xff1a; #include <myhead.h> sem_t sem1; void *copy1()//子线程1函数 拷贝前一半内容 {int fd1open("./1.txt",O…...

基于STM32的智能门锁系统设计思路:蓝牙、RFID等技术

一、项目概述 在现代家居安全领域&#xff0c;传统门锁因其安全性不足、开锁方式单一等问题&#xff0c;已逐渐无法满足用户的需求。传统机械锁容易被撬开、复制钥匙&#xff0c;同时开锁方式仅限于物理钥匙&#xff0c;给用户带来不便。因此&#xff0c;本文旨在设计并开发一…...

AndroidStudio-广播

一、广播的本质 广播是一种数据传输方式 二、Android 中的广播 发送一条广播&#xff0c;可以被不同的广播接收者所接收&#xff0c;广播接收者收到广播之后&#xff0c;再进行逻辑处理。 三、收发标准广播 广播的收发过程分为三个步骤&#xff1a; 1.发送标准广播 2.定义…...

基于表格滚动截屏(表格全部展开,没有滚动条)

import html2canvasPro from html2canvas // 截图&#xff0c;平辅表格 async function resetAgSize() {const allColumns gridApi.value.getColumns()let totalColumnWidth 0let totalColumnHeight 0// 遍历每一个行节点gridApi.value.forEachNode((rowNode) > {totalCo…...

洛谷P1255

P1255 数楼梯 - 洛谷 | 计算机科学教育新生态 数楼梯 题目描述 楼梯有 N 阶&#xff0c;上楼可以一步上一阶&#xff0c;也可以一步上二阶。 编一个程序&#xff0c;计算共有多少种不同的走法。 输入格式 一个数字&#xff0c;楼梯数。 输出格式 输出走的方式总数。 样…...

vue3设置第三方组件 样式::v-deep

在Vue 3中&#xff0c;使用了Composition API的组件可以通过<style>标签内部的::v-deep选择器来深入作用于第三方组件的样式。::v-deep是一个 Scoped CSS 的“深度选择器”&#xff0c;可以穿透组件边界&#xff0c;影响子组件的样式。比如我想修改el-date-picker的颜色边…...

JAVA学习日记(十四)集合进阶

一、单列集合Collection List系列集合特点&#xff1a;添加的元素是有序&#xff08;存和取的顺序一致&#xff09;、可重复、有索引 Set系列集合特点&#xff1a;添加的元素是无序&#xff08;存和取的顺序有可能不一致&#xff09;、不重复、无索引 Collection是所有单列集合…...

mysql全量与增量备份

binlog日志&#xff1a; 从上一次全量备份到下一次全量备份直接产生的数据。 一、全备和增量备份介绍 1、全量备份&#xff1a; 备份所有数据库或只备份一个数据库&#xff0c;全量备份之后&#xff0c;全量备份之前的binlog日志就没用了&#xff0c;一般生产环境会保留3-7天…...

“非法”操控lambda(python)

能过python解释器关卡即是合法脚本代码&#xff0c;偶尔的“违规”操控也是一种唯美。 (笔记模板由python脚本于2024年11月13日 11:18:21创建&#xff0c;本篇笔记适合熟悉python的lambda操控的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.pyth…...

UDP协议和TCP协议之间有什么具体区别?

UDP&#xff08;User Datagram Protocol&#xff09;和TCP&#xff08;Transmission Control Protocol&#xff09;是两种常见的网络传输协议&#xff0c;它们在数据传输中有着显著的区别和适用场景。理解它们的区别对于网络工程师、软件开发人员以及网络安全专家都是至关重要的…...

论文5—《基于改进YOLOv5s的轻量化金银花识别方法》文献阅读分析报告

论文报告&#xff1a;基于改进YOLOv5s的轻量化金银花识别方法 论文报告文档 基于改进YOLOv5s的轻量化金银花识别方法 论文报告文档摘要国内外研究现状国内研究现状国外研究现状 研究目的研究问题使用的研究方法试验研究结果文献结论创新点和对现有研究的贡献1. 目标检测技术2. …...

快手直播间采集教程,快手引流,快手截流,截流工具,直播间截流,快手直播间采集,获客系统,获客软件

功能&#xff1a; 1.输入快手直播间链接可一键监控直播间 2.可采集新进直播间的人 3.可采集直播间所有动作&#xff0c;包含&#xff1a;发弹幕的人和内容、送礼物的人和送的礼物、点亮爱心的人 4.可一键导出新进直播间的快手ID 5.可一键导出直播间动作列表&#xff0c;也可以筛…...

探索MoviePy:Python视频编辑的瑞士军刀

文章目录 &#x1f3ac; 探索MoviePy&#xff1a;Python视频编辑的瑞士军刀第一部分&#xff1a;背景介绍第二部分&#xff1a;MoviePy是什么&#xff1f;第三部分&#xff1a;如何安装MoviePy&#xff1f;第四部分&#xff1a;MoviePy的基本函数使用方法1. 视频剪辑2. 视频拼接…...

mysql 实现分库分表之 --- 基于 MyCAT 的分片策略详解

引言 在我们日常工作的项目中&#xff0c;特别是面向 C 端用户的产品&#xff0c;随着业务量的逐步扩大&#xff0c;数据量也呈指数级增长。为了应对日益增长的数据库压力&#xff0c;数据库优化已成为项目中不可或缺的一环&#xff0c;而分库分表则是海量数据优化方案中的重要…...

Opencascade基础教程(14): 一个模型显示问题

如果显示模型时出现如图情况&#xff0c;正对屏幕的平面特别亮&#xff0c;只需要设置材质为非金属就行。 //创建box并显示TopoDS_Shape aShape BRepPrimAPI_MakeBox(100, 100, 100);Handle(AIS_Shape) aisShpae new AIS_Shape(aShape);aisShpae->SetDisplayMode(AIS_Shad…...

ISP——你可以从这里起步(二)

接上一篇&#xff0c;上一篇是原理篇&#xff0c;这一篇是实战篇&#xff0c;为了实现下面框图中的不完美ISP。 第一章 做一张RAW图自己用 不是所有的人都能获得raw图&#xff0c;即使获得了raw图也需要对应的sensor参数才能把它用起来&#xff0c;所以我找了一条野路子可以把…...

IPD咨询洞察:企业前后端为什么总是拧巴?IPD给出了答案

很多企业有一个共同的困境&#xff1a;执行力不差&#xff0c;但结果总差那么一口气。产品做出来了&#xff0c;却没有竞争力&#xff1b;战略定下来了&#xff0c;却落不到产品上&#xff1b;研发埋头苦干&#xff0c;市场却说卖不动——前端和后端始终拧巴&#xff0c;内耗比…...

APT32F110 RTC实战:从配置校准到低功耗应用全解析

1. 项目概述与核心价值最近在捣鼓爱普特APT32F110这块开发板&#xff0c;发现它内置的RTC&#xff08;实时时钟&#xff09;模块挺有意思。对于很多嵌入式项目来说&#xff0c;时间戳记录、定时唤醒、低功耗运行这些功能都离不开一个靠谱的RTC。APT32F110作为一款主打高性价比和…...

不跨界,现有的地盘就会被别人用跨界的方式蚕食掉

微软这么多员工养着&#xff0c;有时也不得不多个行业发展&#xff0c;就像是美团一样&#xff0c;不得不电商也做起来和京东抢生意。阿里也同时多个行业做着&#xff0c;影视&#xff0c;外卖&#xff0c;生鲜。否则纯电商做不下去就完了。就像是华为一样本来可以卖AI服务器&a…...

Codesys ST语言PID调参避坑指南:从仿真到实战,手把手教你搞定温控/电机

Codesys ST语言PID调参实战手册&#xff1a;从参数整定到系统优化的工程级指南 引言&#xff1a;当PID遇上工业现场 车间里的温度控制系统总是超调5℃&#xff0c;伺服电机在启动瞬间抖动明显&#xff0c;恒压供水系统在负载突变时响应迟缓——这些场景背后都指向同一个核心问题…...

hls::stream作为高层次设计中最总要的建模

template<typename __STREAM_T__> class stream{ protected://保护类型std::string _name;//hls::stream的命名&#xff0c;用于做标记使用std::deque<__STREAM_T__> _data;//队列public://对外接口stream(){//无参构造函数static unsigned _counter 1;std::strin…...

taotoken如何为github actions工作流提供稳定的大模型服务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 taotoken如何为github actions工作流提供稳定的大模型服务 应用场景类&#xff0c;探讨在github actions自动化流水线中集成taotok…...

NLP之BERT预训练模型详解

摘要&#xff1a; BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是谷歌于2018年提出的革命性自然语言处理模型&#xff0c;首次将基于Transformer的双向编码器架构成功应用于预训练语言模型&#xff0c;在多项NLP基准任务上刷新了最优…...

Windows右键菜单终极优化指南:如何用ContextMenuManager让右键菜单秒开如飞

Windows右键菜单终极优化指南&#xff1a;如何用ContextMenuManager让右键菜单秒开如飞 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾经对着电脑屏幕等…...

3分钟告别Windows桌面混乱:这款免费工具让你的图标瞬间变整齐

3分钟告别Windows桌面混乱&#xff1a;这款免费工具让你的图标瞬间变整齐 【免费下载链接】NoFences &#x1f6a7; Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 还在为Windows桌面上那些杂乱无章的图标头疼吗&…...

Jetson Orin AGX INT4 推理优化实践:super 分支从 9 tok/s 到 24 tok/s

Jetson Orin AGX INT4 推理优化实践&#xff1a;super 分支从 9 tok/s 到 24 tok/s 项目地址&#xff1a;https://github.com/luogantt/LLM-inference-engine 本文总结 jetson-orin-agx-super 分支上的一次端侧大模型推理优化实践。目标设备是 Jetson Orin AGX&#xff0c;目…...