python之递归

Python 函数:Python 中的递归 一种更直接的方法是将学校分成几个部分,直到可以制作最小的部分来找到学生,也就是说,首先搜索她所在的年级,然后是班级会更有意义,然后您将能够更容易地找到她的位置。尽管由于 return 语句中存在函数名称,调用似乎是尾递归的,但这并不是因为在这种情况下调用是表达式的一部分。如果在递归函数中,其中的所有调用都是尾递归的,则称为尾递归。在尾递归函数中,函数完成的最后一个任务是递归调用,因此在递归调用发生后没有挂起的操作。在比较中,先将字符转换为大写,然后再进行比较,以减少同一元音的不同大小写之间的比较次数。 阅读详情

一、什么是递归

二、递归找文件

三、代码演示

"""
    使用递归列出指定路径下的所有文件
"""
import os


def get_files_from_dir(path):
    file_list = []

    # 判断路径是否存在
    if os.path.exists(path):
        # 遍历列表
        for f in os.listdir(path):
            # 生成文件(夹)路径
            new_path = path + "/" + f
            # 递归调用自己
            if os.path.isdir(new_path):
                # 将返回的list并入原来的list
                file_list += get_files_from_dir(new_path)
            else:
                # 将文件路径加入file_list
                file_list.append(new_path)
    else:
        # 该文件夹不存在
        print(f"该路径{path}不存在")
    # 返回文件的list
    return file_list

# 测试
if __name__ == '__main__':
    print(get_files_from_dir("D:\docs1"))

运行结果:

四、总结

JWT实战:5分钟搞定Spring Boot集成JWT认证(含完整代码示例) 本文详细介绍了如何在Spring Boot中快速集成JWT认证,提供完整的代码示例和配置指南。通过JWT实现无状态认证,解决分布式系统中的会话管理问题,提升系统扩展性和安全性。涵盖令牌生成、验证、Spring Security整合及生产级优化方案。 阅读详情

相关推荐

别再只盯着时序了!聊聊SDC里那些容易被忽略的‘配角’命令:工作条件、线载模型与面积约束

本文深入探讨了SDC(设计约束)中常被忽视的关键命令,包括set_operating_conditions、set_wire_load_model和set_max_area。这些‘配角’命令在芯片设计中扮演着至关重要的角色,影响时序收敛、功耗和面积优化。文章通过实际案例和最佳实践,揭示了如何正确配置工作条件、选择线载模型以及动态调整面积约束,以提升设计质量和效率。

weixin_26875109的博客 208

python递归创建目录

os.mkdir()可以创建指定的目录,但如果其上一级目录不存在,则无法创建成功。 os.makedirs()则可以实现递归创建目录的功能。

ZauberC的博客 1292

外设高级定时器互补输出带死区控制实验

外设高级定时器互补输出带死区控制实验

ff_juju的博客 1654

python递归创建文件

使用python脚本创建文件,内容为时间戳+随机字符,确保文件hash唯一; 可自定义【文件夹层级深度,每层级文件夹下子文件夹数目,每个子文件夹下文件数目,文件大小】; 生成文件在脚本同一目录下。

qq284489030的博客 1038

如何使用安路TD与Modelsim进行联合仿真?

1)安装安路FPGA开发软件;(本次实验使用版本:TD_5.6.3_Release)2)安装Modelsim仿真软件;(本次实验使用版本:Modelsim SE-64 10.1c)3)FPGA开发板;(本次实验使用型号:EG4X20BG256)4)LED点灯例程;

qq_17313923的博客 3223

M系列芯片MacBook上UTM虚拟机部署达梦DM8的避坑指南

本文详细介绍了在M系列芯片MacBook上使用UTM虚拟机部署达梦数据库DM8的完整流程与避坑指南。针对ARM架构环境,重点解决了虚拟机选择、麒麟系统安装、系统调优及DM8命令行安装中的常见问题,为开发者提供了稳定可靠的国产数据库本地测试方案。

weixin_28455801的博客 460

Python创建目录及缺失的父目录的方法

在Python编程中,经常会遇到需要创建目录以及其缺失的父目录的情况。例如,在进行文件存储时,需要确保存储路径的所有目录都存在。类似于Bash命令,Python也有多种方法来实现这一功能。

qq_29715355的博客 670

WinDbg调试工具安装全攻略:从下载到配置的保姆级教程(Windows 10/11适用)

本文提供了一份详细的WinDbg调试工具安装与配置指南,适用于Windows 10/11用户。文章对比了WinDbg Preview独立版与SDK内置经典版的区别,并手把手指导从Microsoft Store或Windows SDK完成安装。核心部分重点讲解了如何配置符号文件路径与源代码路径,这是让WinDbg发挥强大调试功能的关键步骤,并针对常见安装问题提供了实用的排错方法。

hp777的博客 389

Python自动创建文件和创建目录的方法

Python提供了丰富的文件和目录操作功能,你可以使用这些功能来创建、读取、写入和删除文件和目录。在编写涉及文件和目录操作的代码时,请确保正确处理可能出现的异常,并始终使用上下文管理器来确保文件在不再需要时正确关闭。

Python老吕的博客 3892

1998年高教社杯全国大学生数学建模竞赛 B 题:《灾情巡视路线》真题解析与 MATLAB 解决方案

🏆 本文已收录于专栏:《滚雪球学数学建模(含历年真题)》,持续更新最新及历年数学建模竞赛资料,每篇内容力求做到“问题讲透、模型讲清、代码可用、论文可参考”,帮助你从零开始逐步建立完整的数学建模知识体系。

**My Coding Family** 883

嵌入式工程师必学(118):MCU的硬件定时器和中断

大多数微处理器都有一个或多个可编程硬件定时器,这些定时器包括对中断的支持。可以有不同类型的计时器,用于不同的应用程序。例如,LPC1768 具有四个 32 位通用定时器、一个看门狗定时器、一个重复中断定时器、一个系统滴答定时器、一个正交编码器接口、6 个 PWM 输出和一个支持中断的实时时钟。硬件定时器用于计时和计数作,允许处理器在 timer 进程运行时继续执行其他进程。硬件定时器是一种使用 clock 信号来增加 register 的电路。

码农17年的博客 211

python实现自动生成目录

在 Python 中,可以使用 os 模块来实现自动生成目录。具体方法是使用 os.makedirs() 函数,该函数可以创建文件夹。 示例代码如下: importos directory = 'path/to/directory' if not os.path.exists(directory): os.makedirs(directory) 这段代码首先检查指定的目录是否存在,如...

weixin_35750953的博客 1464

c#【保姆级教程】基于System.Text.Json 支持多态类型序列化! 手把手教你实现一个通用的 PolymorphicJsonConverter!

我们需要自己实现一个继承自的转换器,在序列化时记录具体类型,在反序列化时根据类型标识还原成正确的子类对象。public abstract class WorkStepBase { /* 抽象方法等 */ }public class Person : WorkStepBase { /* 实现 */ }public class Product : WorkStepBase { /* 实现 */ }特性说明✅ 自动发现子类无需手动维护类型列表,自动扫描程序集✅ 类名映射。

一个编程的同学 426

python的递归_Python 递归

锲子先看一段函数defstory():s= """从前有个山,山里有座庙,庙里老和尚讲故事,讲的什么呢?"""print(s)story()story()初识递归递归的定义——在一个函数里再调用这个函数本身现在我们已经大概知道刚刚讲的story函数做了什么,就是在一个函数里再调用这个函数本身,这种魔性的使用函数的方式就叫做递归。递归的最大深度——997正如你们刚刚看到的,递归函数如果不受到外力的阻...

weixin_35925298的博客 1251

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Python递归算法详解

Python递归算法详解 2018.08.05 17:501296浏览 递归的概念很简单,如果函数包含了对其自身的调用,该函数就是递归的。 递归(Recursion),在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。 在使用递归时,需要注意以下几点: 递归就是在过程或函数里调用自身 必须有一个明确的递归结束条件,称为递归出口。 注意: 切勿忘记递归出口,避免函数无限调用...

xinhaowudi的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

递归算法经典实例python-递归案例python

广告关闭2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。而对应的中文翻译 ”递归" 却表达了两个意思:”递"+”归"。 这两个意思,正是递归思想的精华所在。 从这层次上来看,中文翻译反而更达意。 递归是静中有动,有去有回。 循环是动静如一,有去无回。 python递归常见使用汉诺塔python第二十二...

weixin_37988176的博客 5455

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Python函数的递归调用

一:递归的定义 函数的递归调用:是函数嵌套调用的一种特殊形式 具体是指:在调用一个函数的过程当中,又直接或者间接地调用到了本身 Python对递归调用循环调用的次数有限制,为1000次 1.调用的例子: 直接调用本身 def f1(): print('是我') f1() f1() 间接调用本身 def f1(): print('我是f1') f2() def f2(): print('我是f12') f1() f1() 2.一段代码的循环运行方案有2

python学习者的博客 6185

python斐波那契递归_Python递归斐波那契示例

python斐波那契递归Good day, learners! In this tutorial we are going to learn about Python Recursion and use it for fibonacci sequence generation. In previous tutorial we discussed about Python Function and ...

从零开始的教程世界 1794

python递归_Python当中的尾递归优化

本文讨论Python中尾递归优化以及尾递归优化原理。本文共讨论两点内容,一个是如何进行尾递归优化,一个是递归优化原理。如何进行尾递归优化Python当中实际上没有尾递归优化的功能,递归受到栈长度限制,例如我们用递归实现斐波那契数列计算的时候,def fib(i, current = 0, next = 1): if i == 0: return current else: ...

weixin_39735288的博客 351

Python递归与非递归算法的例子,七个练习

练习1 创建一个函数 power来为任意数字做幂运算n ** i #递归 def power(n,i): if i==1: return n return n*power(n,i-1) print(power(2,4)) 练习2 创建一一个函数,用来检查一个任意的字符串是否是回文字符串 ,如果是返回True,否则返回False #回文字符串,字符串从前往后念和从后往前念是一样的 #abcba #先...

weixin_46227398的博客 1881

python函数的递归调用

函数递归就是函数的递归调用,是函数嵌套调用的一种特殊形式,具体就是指在调用一个函数的过程中直接或者间接的调用到本身,递归的本质就是循环做重复的事情。在调用func的过程中又调用func,这就是直接调用函数本身;在调用func的过程中调用foo,而在调用foo的过程中又调用func,这就是间接调用func本身。通过上面的分析,两种情况下的函数递归调用都是一个无限循环的过程,Python为了防止函数递归进入无限循环对函数递归调用的深度做了限制,一旦超出限制就会抛出异常。

weixin_71807218的博客 2071

python递归_python 递归

我想把Python中的递归作为一个专题讨论一下。我在学习的时候,尝试使用“Python递归”作为关键词,在Google和百度中搜索,发现结果大部分是对某个具体例子的递归应用讨论,而对我这样的小白来说,切入点有点高。而我现在需要做的,是从基础概念开始。想到讨论递归问题,是因为那个著名的“字典序”问题,但还是先从最基本的递归概念开始。我希望我讨论完了这个,自己对递归也有一个基本的了解了。递归的概念很简...

weixin_39624097的博客 150

python 之递归与非递归实现全排列

全排列:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。公式:全排列数f(n)=n!(定义 n 为正整数)# 给定的元素中,抽取一定数量的元素进行排列,求排列的总数# 现以26个字母为例,从 a 开始,n 个字母的不同种排列数量为 n! 将这 n! 种不同排列进行输出  1 &lt;= n &lt;= 2...

yzmumu的博客 2088

python递归详解_python递归

1.1 递归讲解1、定义1. 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。2、递归特性1. 必须有一个明确的结束条件2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由...

weixin_39916479的博客 405

递归算法经典实例python-Python递归算法详解

递归的概念很简单,如果函数包含了对其自身的调用,该函数就是递归的。递归(Recursion),在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。在使用递归时,需要注意以下几点:递归就是在过程或函数里调用自身必须有一个明确的递归结束条件,称为递归出口。注意: 切勿忘记递归出口,避免函数无限调用。递归基本步骤每一个递归程序都遵循相同的基本步骤:1.初始化算法。递归程序通常需要一个开始时使用的...

weixin_37988176的博客 2229
上一篇: python之正则表达式-元字符匹配
下一篇: python之is和==的区别
python_198
博客等级 码龄3年 359粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python_198

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值