python基础之递归函数

# 递归满足的条件
# 1.自己调用自己
# 2.必须有一个明确的结束条件
# 优点:逻辑简单\定义简单
# 缺点:防止内存消耗过多,容易导致栈溢出,内存资源紧张,甚至内存泄漏事件发生
# 求阶乘
# 循环的方式去实现
def jiecheng(n):
    result=1
    for item in range(1,n+1):
        result*=item
        pass
    return result #普通函数必须指定返回值
print('4的阶乘为{}'.format(jiecheng(4)))

def diguijc(n):
    '''
    递归函数
     :param n:阶乘参数
    :return:
    '''
    if n==1:
        return 1
    else:
        return n*diguijc(n-1)
    pass
 # 递归调用
print('4的阶乘为{}'.format(diguijc(4)))

# 模拟实现树形结构的遍历
import os #引入文件操作模块
def findFile(file_path):
    listRs=os.listdir(file_path) # 得到该路径下所有和文件夹
    for fileitem in listRs:
        full_path=os.path.join(file_path,fileitem) #组合成为完整的文件路径
        if os.path.isdir(full_path): #判断是否是文件夹
            file_path(full_path) #如果是一个文件夹,再次递归
            pass
        else:
            print(fileitem)
            pass
        pass
    else:
        return
    pass
# 先给一个路径
findFile('C:\\Users\\LXQ\\Desktop')

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • python基础之局部变量和全局变量

    四种基本的函数类型 局部变量 就是在函数内部定义的变量[作用域仅局限于函数内部] 不同的函数 可以定义相同的局部变量,但是各自用各自的 不会产生影响 局部变量的作用:为了临时的保存数据 需要在函数中定义来进行存储 全局变量 作用域为全局的变量 如果在函数内部想要对全局变量进行修改,必须使用Global关键字进行声明 局部变量 def printInfo(): name='peter' ##局部变量,只作用于printInfo函数,函数体之外无法使用 print('name') pass def

  • python基础之变量和数据类型

    目录 变量和数据类型 Python中变量的命名规则 总结 变量和数据类型 赋值不需要指定类型,如何定义变量 # 定义 规则 变量名=数据 a=10 #python不声明数据类型,所以在定义变量时必须赋值 a=10 #python不声明数据类型,所以在定义变量时必须赋值 a=20 print(a) #使用a 先定义变量,然后才可使用,变量可以改变 # 在程序执行过程中可以该改变值 值可以直接改变,无需定义. 从pycharm直接进入python终端 通过变量来实现数值取用 输出元素类型 print

  • python基础之输入与输出

    目录 Python的输入与输出 输出 输入 总结 Python的输入与输出 输出 通过字符串格式化优化不必要的重复输出 %占位符来优化 # 输出 % 占位符,实现字符串可视化输出 name='张扬' classpro='清华附中一年级三班' print('我的名字是%s:来自班级[%s]'%(name,classpro)) # 练习输出 name='老夫子' QQ='666666666' phone='77777777777' address='xian' print('============

  • python基础之基本运算符

    目录 Python基本运算符 算数运算符 比较运算符 逻辑运算符 赋值运算符 总结 Python基本运算符 算数运算符 # + - * / % ** // 算数运算符 # 定义如下运算符 a=7 b=3 print(a+b) print(a-b) print(a*b) print(a/b) print(a%b) print(a//b) # 地板除,相除取整,也可进行复合运算 比较运算符 # == != < > >= <= 比较运算符 a,b=10,5 print(a==b) pri

  • python基础之函数

    函数: # 什么是函数:一系列python语句的组合,可以在程序中运行一次或者多次 # 一般是完成具体的独立的功能 # 为什么要使用函数 # 代码的复用最大化以及最小化冗余代码,整体代码结构清晰,问题局部化 # 函数定义: # def 函数名() # 函数体[一系列的python语句,表示独立的功能] # 函数的调用: # 本质上就是去执行函数定义里面的代码块.在调用函数之前,必须先定义 printInfo() #函数的调用 函数名()#函数的调用 def printInfo(name,heig

  • python基础之字典

    字典 # 字典:也是python中重要的数据类型,字典是由键值对组成的集合 # 通常使用 键来访问数据,效率非常高,和list一样支持对数据的添加.修改和删除操作 # 特点: # 1.不是序列类型,没有下标的概念,是无序的键值集合,是python中内置的高级数据类型' # 2.使用{}来表示字典对象,每个键值对使用逗号来分割 # 3.其键必须是不可变的类型[元组.字符串] 值可以是任意类型 # 4.每个键必定是唯一的,如果存在重复的键,那么后者会覆盖前者,产生覆盖 # 如何创建字典 dicta=

  • python基础之引用和匿名函数

    a=1 #1 为对象, def func(x): print('x的地址{}'.format(id(x))) x=2 print('x的地址{}'.format(id(x))) pass # 调用函数 print('a的地址:{}'.format(id(a))) func(a) # 不可变类型 a=1 #1 为对象, ##传递的是一个对象的引用,并不是一个值 def func(x): print('x的地址{}'.format(id(x))) x=2 print('x的地址{}'.format(

  • python基础之递归函数

    # 递归满足的条件 # 1.自己调用自己 # 2.必须有一个明确的结束条件 # 优点:逻辑简单\定义简单 # 缺点:防止内存消耗过多,容易导致栈溢出,内存资源紧张,甚至内存泄漏事件发生 # 求阶乘 # 循环的方式去实现 def jiecheng(n): result=1 for item in range(1,n+1): result*=item pass return result #普通函数必须指定返回值 print('4的阶乘为{}'.format(jiecheng(4))) def di

  • python基础学习之递归函数知识总结

    一.递归函数使用注意点 递归函数一定要编写终止条件,否则将产生无限递归.(死循环) 二.递归的效率问题 递归效率不高,递归层次过多会导致栈溢出. Python中不推荐使用递归. 三.递归函数引入 """ 使用代码循环输出故事:从前有座山,山里有座庙... """ # ------------while循环 (暂时忽略死循环)--------------- while True: print("从前有座山,山里有座庙...")

  • Python基础学习之深浅拷贝问题及递归函数练习

    目录 一.深浅拷贝问题 二.递归函数练习 1. 求阶乘 2. 猴子吃桃问题 3. 打印斐波那契数列 一.深浅拷贝问题 在实际工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题.为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用.为了生成这个副本,就产生了拷贝.下面先了解一下几个概念:对象.可变类型.引用 Python对象:在 Python 中,对象有一种很通俗的说法是,万物皆对象.说的就是构造的任何数据类型都是一个对象,无论是数字,字符串

  • Python基础语言学习笔记总结(精华)

    以下是Python基础学习内容的学习笔记的全部内容,非常的详细,如果你对Python语言感兴趣,并且针对性的系统学习一下基础语言知识,下面的内容能够很好的满足你的需求,如果感觉不错,就收藏以后慢慢跟着学习吧. 一.变量赋值及命名规则 ① 声明一个变量及赋值 #!/usr/bin/env python # -*- coding:utf-8 -*- # _author_soloLi name1="solo" name2=name1 print(name1,name2) name1 = &q

  • Python基础之函数基本用法与进阶详解

    本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时,是否接收参数,或者是否返回结果,是根据 实际的功能需求 来决定的! 如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内

  • Python基础知识之变量的详解

    一.定义 在python中,变量名只有在第一次出现的时候,才是定义变量.当再次出现时,不是定义变量,而是直接调用之前定义的变量. 二.命名方法 2.1小驼峰命名法 第一个单词以小写字母开始,后续单词的首字母大写 firstName , lastName 2.2大驼峰命名法 每一个单词的首字母都采用大写字母 FirstName , LastName 2.3下划线命名法 每个单词之间用下划线连接起来 first_name , last_name 三.命名规则 3.1标识符 开发人员自定义的一些符号和

  • Python基础学习之函数和代码复用详解

    目录 Python函数和代码复用 一.函数的定义 二.函数的调用 三.函数的参数传递 1.形式参数与实际参数 2.位置传参与关键字传参 3.可变对象与不可变对象的参数传递 4.个数可变的位置.关键字参数 5.函数参数总结(一) 6.函数参数总结(二) 四.函数的返回值 五.变量的作用域 六.代码复用 七.递归函数 1.什么是递归函数 2.递归的组成部分 3.递归的调用过程 4.递归的优缺点 八.总结 Python函数和代码复用 什么是函数:   函数是一段具有特定功能的,可重用的语句组,通过函数

  • 详谈Python基础之内置函数和递归

    一.内置函数 下面简单介绍几个: 1.abs() 求绝对值 2.all() 如果 iterable 的所有元素都为真(或者如果可迭代为空),则返回 True 3.any() 如果 iterable 的任何元素为真,则返回 True.如果iterable为空,则返回 False 4.callable() 如果 object 参数出现可调,则返回 True,否则返回 False 5.divmod() 以两个(非复数)数字作为参数,并在使用整数除法时返回由商和余数组成的一对数字.对于混合操作数类型,二

  • 浅谈Python基础之I/O模型

    一.I/O模型 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别? 这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blockin

  • python基础_文件操作实现全文或单行替换的方法

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 1.替换文本中的taste 为 tasting Yesterday when I was young 昨日当我年少轻狂 The taste of life was sweet 生命的滋味是甜的 As rain upon my tongue #将文件读取到内存中 with open("./fileread.txt","r",encoding

随机推荐