Python
文章平均质量分 89
本专栏面向Python零基础读者,从基本语法写起,基本覆盖Python基础的全部内容,深入浅出的内容设计,助力全栈开发。
何极光
何程龙,大学计算机科学与技术专业毕业,现就任前端开发工程师。曾荣获:CSDN博客专家、签约讲师,InfoQ写作社区专家博主,中国开源协会-开发分会管理委员会委员。现主要从事软件开发及软件教育培训,具有丰富的实战经验,善于将复杂问题简单化,擅长Web前端、JavaScript框架、Java并发、C#编程、Python Web、数据库SQL等领域及技术。
展开
-
Python之禅——传说中的蛇宗总纲
一、什么是禅人生中的烦恼都是自己找的,当心灵变得博大,空灵无物,犹如倒空了烦恼的杯子,便能恬淡安静。人的心灵,若能如莲花与日月,超然平淡,无分别心、取舍心、爱憎心、得失心,便能获得快乐与祥和。水往低处流,云在天上飘,一切都自然和谐地发生,这就是平常心。拥有一颗平常心,人生如行云流水,回归本真,这便是参透人生,便是禅!在交互式解释器中输入import this就会显示 Tim Peters 的 “The Zen of Python”Beautiful is better than ugly.//原创 2020-07-16 18:28:27 · 712 阅读 · 0 评论 -
深入浅出Python——Python基础语法全解
前言:Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。文章目录一、Python简介1. 了解Python2. Python介绍3. Python特点4. Python发展历史5. Python版本二、Python解释器1. 解释器的作用2. 解释器的安装三、PyCharm安装与使用1. PyCharm的作用2. PyCharm安装与使用四、注释1. 注释的作用2. 注释的分类及语法五、变量1. 变量的作用2. 定义变量2.1 标识符2.2 命名习惯2.3 使用变量2.4 认识原创 2020-07-24 20:31:37 · 82410 阅读 · 82 评论 -
深入浅出Python——Python高级语法之函数
前言:一、函数的作用函数就是将一段具有独立功能的代码块 整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。函数在开发过程中,可以更高效的实现代码重用。二、函数的使用步骤1. 定义函数def 函数名(参数): 代码1 代码2 ......2. 调用函数函数名(参数)注意:不同的需求,参数可有可无。在Python中,函数必须先定义后使用。...原创 2020-07-27 17:14:51 · 7730 阅读 · 22 评论 -
深入浅出Python——Python高级语法之面向对象
前言:本博文主要讲解Python文件操作的写法,属于Python高级语法。基础语法见:深入浅出Python——Python基础语法全解,更多内容请访问博主的主页,谢谢!文章目录一、理解面向对象二、类和对象1. 理解类和对象1.1 类1.2 对象2. 面向对象实现方法2.1 定义类2.2 定义类2.3 self三、添加和获取对象属性1. 类外面添加对象属性2. 类外面获取对象属性3. 类里面获取对象属性四、魔法方法1. `__init__()`1.1 体验`__init__()`1.2 带参数的`__ini原创 2020-08-02 19:26:34 · 3300 阅读 · 3 评论 -
深入浅出Python——Python高级语法之文件操作
前言:本博文主要讲解Python文件操作的写法,属于Python高级语法。基础语法见:深入浅出Python——Python基础语法全解,更多内容请访问博主的主页,谢谢!文章目录一、文件操作的作用二、文件的基本操作1. 文件操作步骤1.1 打开1.1.1 打开文件模式1.1.2 快速体验2.1 文件对象方法1.2.1 写1.2.2 读1.2.3 seek()3.1 关闭三、文件备份1. 步骤2. 代码实现3. 思考四、文件和文件夹的操作1. 文件重命名2. 删除文件3. 创建文件夹4. 删除文件夹5. 获原创 2020-07-30 21:17:48 · 3688 阅读 · 4 评论 -
深入浅出Python——Python高级语法之异常、模块、包
前言:本博文主要讲解Python异常、模块、包,属于Python高级语法。基础语法见:深入浅出Python——Python基础语法全解,更多内容请访问博主的主页,谢谢!文章目录一、了解异常二、异常的写法1. 语法2. 快速体验3. 捕获指定异常3.1 语法3.2 体验3.3 捕获多个指定异常3.4 捕获异常描述信息3.5 捕获所有异常4. 异常的else5. 异常的finally三、异常的传递四、自定义异常五、模块1. 导入模块1.1 导入模块的方式1.2 导入方式详解1.2.1 import1.2.2原创 2020-08-02 21:58:05 · 2637 阅读 · 3 评论 -
Python函数实现“学生管理系统”案例
前言:本案例利用Python函数实现“学生管理系统”案例。文章目录一、需求分析二、Python文件三、文本文件一、需求分析显示所有学生信息新建学生信息查询学生信息修改学生信息删除学生信息选择显示功能打印平均分打印及格率退出操作退出系统二、Python文件import functoolsimport os# 存储学生信息# stu_mesall = {# "s001": {"sno": "s001", "name": "张三", "age":原创 2020-07-22 21:02:48 · 2829 阅读 · 0 评论 -
Python超详细学员管理系统【函数实现】
前言:本程序——“学员管理系统”利用Python函数进行实现。文章目录一、系统简介二、步骤分析三、需求实现1. 显示功能界面2. 用户输入序号,选择功能3. 根据用户选择,执行不同的功能4. 定义不同功能的函数4.1 添加学员4.2 删除学员4.3 修改学员信息4.4 查询学员信息4.5 显示所有学员信息4.6 退出系统一、系统简介需求:进入系统显示系统功能界面,功能如下:添加学员删除学员修改学员信息查询学员信息显示所有学员信息退出系统系统共6个功能,用户根据自己需求选取。二、步骤原创 2020-07-30 09:29:11 · 1833 阅读 · 1 评论 -
Python超详细学员管理系统【面向对象实现】
前言:本程序——“学员管理系统”利用Python函数进行实现。更多函数知识请访问:深入浅出Python——Python高级语法之面向对象文章目录一、系统需求二、准备程序文件1. 分析2. 创建程序文件三、书写程序1. student.py1.1 程序代码2. managerSystem.py2.1 定义类2.2 管理系统框架3. main.py4. 定义系统功能函数4.1 添加功能4.2 删除学员4.3 修改学员信息4.4 查询学员信息4.5 显示所有学员信息4.6 保存学员信息4.7 加载学员信息四、总原创 2020-08-02 22:27:51 · 2473 阅读 · 0 评论 -
Python面向对象练习题汇总
1. 什么是类,什么是对象?类:对一类事物的描述,是抽象的、概念上的定义。对象:实际存在的该类事物的每个个体,因而也称实例(instance)类是对象的抽象,对象是类的实例。2. python中如何定义一个类的格式class 类名(object): 成员(方法)3. 类(class)由哪三个部分构成类名,属性,方法。4. 类名的命名规则是什么要遵循标识符的命名规范,尽量使用大驼峰命名法,命名时做到“见名思意”。5. python中如何通过类创建对象对象名 = 类名()原创 2020-07-29 17:34:32 · 15824 阅读 · 1 评论 -
使用Python的requests库爬取网页表情包
一、目标网站喜羊羊QQ表情,可爱的懒羊羊搞笑图片二、开发思路安装项目所需环境导入所需的类库定义一个函数用来获取图片a. 获取网络源代码b. 获取源代码中所有的图片c. 筛选出目标图片调用获取图片的函数(获取成功)定义一个函数,用来下载图片a. 指定图片的URL,获取到图片的资源b. 指定目录,下载图片到本地重命名下载到本地的图片项目结束项目源码# 1. 导入第三方的一个http的请求库# pip install requests# 导入Python的第三方库imp原创 2021-09-12 22:31:20 · 968 阅读 · 1 评论 -
Python udp聊天器(多任务版)
一、案例示例二、案例说明编写一个有2个线程的程序。线程1用来接收数据然后显示。线程2用来检测键盘数据然后通过udp发送数据。三、参考代码import socketimport threadingdef send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" while True: # 1. 从键盘输入数据 msg = input("\n请输入要发送的数据:") # 2. 输入对方的ip地原创 2020-09-26 23:43:04 · 618 阅读 · 1 评论 -
Python网络编程之socket
一、不同电脑上的进程之间如何通信首要解决的问题是如何唯一标识一个进程,否则通信无从谈起。那么在1台电脑上可以通过进程号(PID)来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用进程(进程)。这样利用IP地址,协议,端口就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。注意:所谓进程指的是:运行的程序以及运行时用到的资源这个整体称之原创 2020-09-26 23:42:18 · 710 阅读 · 0 评论 -
Python并发下载器【原理+实例】
一、并发下载原理from gevent import monkeyimport geventimport urllib.request# 有耗时操作时需要monkey.patch_all()def my_downLoad(url): print('GET: %s' % url) resp = urllib.request.urlopen(url) data = resp.read() print('%d bytes received from %s.' %原创 2020-09-26 23:39:16 · 671 阅读 · 0 评论 -
Python文件夹copy器(多进程版)
import multiprocessingimport osimport timeimport randomdef copy_file(queue, file_name, source_folder_name, dest_folder_name): """copy文件到指定的路径""" f_read = open(source_folder_name + "/" + file_name, "rb") f_write = open(dest_folder_name + "原创 2020-09-26 23:37:45 · 492 阅读 · 0 评论 -
Python网络编程之udp
文章目录一、什么是网络二、使用网络的目的三、什么是ip地址一、什么是网络网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。网络是人类发展史来最重要的发明,提高了科技和人类社会的发展。网络就是一种辅助双方或者多方能够连接在一起的工具。二、使用网络的目的为了联通多方进行通信用的,即把数据从一方传递给另外一方。之前的编程都是单机的,即不能和其他电脑上的程序进行通信。为了让在不原创 2020-08-19 09:54:37 · 1275 阅读 · 1 评论 -
Python并发编程之进程、线程、协程对比
友情链接:文章目录一、举例二、总结一、举例有一个老板想要开个工厂进行生产某件商品(例如剪子)。他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的为了能够生产剪子而准备的资源称之为:进程。只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程。这个老板为了提高生产率,想到3种办法:在这条生产线上多招些工人,一起来做剪子,这样效率是成倍増长,即单进程 多线程方式。老板发现这条生产线上的工原创 2020-08-17 16:32:02 · 1183 阅读 · 0 评论 -
Python并发编程之协程(greenlet、gevent)
文章目录一、greenlet1.1 安装方式1.2 greenlet的使用二、gevent2.1 安装方式2.2 gevent的使用2.3 gevent切换执行2.4 给程序打补丁一、greenlet为了更好使用协程来完成多任务,Python中的greenlet模块对其封装,从而使得切换任务变的更加简单。1.1 安装方式使用如下命令安装greenlet模块:sudo pip3 install greenlet1.2 greenlet的使用from greenlet import greenl原创 2020-08-17 16:27:40 · 642 阅读 · 2 评论 -
Python并发编程之协程【必知必会】
前言:前面我们已经讲解过了进程和线程,本博文将讲解实现多任务的另一种方式——多协程。文章目录一、协程概念二、协程和线程差异三、简单实现协程一、协程概念协程,又称微线程,纤程。英文名Coroutine。协程是Python中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机,我们可以把一个协程切换到另一个协程。只要这个过程中保存或恢复CPU上下文那么程序还是可以运行的。通俗的理解:在一个线程中的某个函数,原创 2020-08-17 16:24:31 · 569 阅读 · 0 评论 -
Python中生成器详解
前言:在前面的博文里,已经介绍了生成器:Python迭代器与生成器总结【建议收藏】,本博文将系统介绍Python中的生成器。文章目录一、生成器简介二、使用()创建生成器三、使用yield创建生成器四、使用send唤醒一、生成器简介利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即原创 2020-08-17 16:23:20 · 587 阅读 · 0 评论 -
Python中迭代器详解
前言:在前面的博文里,已经介绍了迭代器:Python迭代器与生成器总结【建议收藏】,本博文将系统介绍Python中的迭代器。文章目录一、迭代器简介二、可迭代对象三、判断一个对象是否可以迭代四、可迭代对象的本质五、iter()函数与next()函数六、判断一个对象是否是迭代器七、迭代器Iterator八、for...in...循环的本质一、迭代器简介迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退原创 2020-08-17 16:21:26 · 1143 阅读 · 0 评论 -
Python进程、线程对比【建议收藏】
一、功能进程:能够完成多任务,比如在一台电脑上能够同时运行多个QQ。线程:能够完成多任务,比如一个QQ中的多个聊天窗口。二、定义的不同进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。三、区别一个程序至少有一个进程,一个进程至少有一个线程。线程的原创 2020-08-16 18:10:19 · 532 阅读 · 0 评论 -
Python并发编程之线程(死锁)
前言:本博文主要讲解Python并发编程中线程的死锁。死锁就是使用互斥锁不当而产生的后果,那么我们应该如何避免、解决呢?请看下文!文章目录一、死锁二、避免死锁三、银行家算法介绍3.1 背景知识3.2 问题描述3.3 案例总结一、死锁在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。下面看一个死锁的例子:import threadingimport timeclass MyThread1(thr原创 2020-08-16 18:07:38 · 529 阅读 · 2 评论 -
Python并发编程之线程(同步、互斥锁)
前言:本博文是对Python并发编程之线程的知识延伸,主要讲解:同步、互斥锁。文章目录一、同步的概念二、解决线程同时修改全局变量的方式三、互斥锁的概念四、使用互斥锁完成2个线程对同一个全局变量各加100万次的操作五、上锁解锁过程分析一、同步的概念同步就是协同步调,按预定的先后次序进行运行。 如:你说完,我再说。"同"字从字面上容易理解为一起动作;其实不是,"同"字应是指协同、协助、互相配合。如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B原创 2020-08-16 18:07:00 · 638 阅读 · 0 评论 -
Python多线程中的threading
前言:在前面的博文里,我介绍了实现Python多任务的一种方式——多进程,那么本博文将介绍另一种方式——多线程。文章目录一、使用threading模块1.1 使用threading模块1.1.1 单线程执行1.1.2 多线程执行1.2 主线程会等待所有的子线程结束后才结束一、使用threading模块Python的thread模块是比较底层的模块,Python的threading模块是对thread做了一些包装的,可以更加方便的被使用。1.1 使用threading模块1.1.1 单线程执行im原创 2020-08-16 18:06:19 · 781 阅读 · 0 评论 -
深入理解Python中的GIL(全局解释器锁)
前言:本博文主要讲解Python中的GIL(全局解释器锁),本人经过查阅多个资料,摒弃一些较官方的描述,用自己的语言整理并加以补充,如果有描述有误的地方,还望读者在评论区指出,谢谢!文章目录一、GIL是什么二、为什么会有GIL三、GIL的副作用四、GIL的总结五、GIL面试题一、GIL是什么GIL:又称全局解释器锁。作用就是限制多线程同时执行,保证同一时间内只有一个线程在执行。线程非独立的,所以同一进程里线程是数据共享,当各个线程访问数据资源时会出现“竞争”状态,即数据可能会同时被多个线程占用,造成数原创 2020-08-14 20:23:20 · 2207 阅读 · 3 评论 -
Python并发编程之进程(僵尸进程、孤儿进程)
文章目录一、基本概念二、僵尸进程三、孤儿进程2.1 multiprocessing2.2 fork四、知识扩展一、基本概念在前面的博文里,我们都知道:正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程到底什么时候结束。 当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。也就是说:父进程会默认等待子进程的执行,在所有子进程都结束之后,父进程再结束。二、僵尸进程僵原创 2020-08-14 20:22:31 · 799 阅读 · 0 评论 -
Python并发编程之进程总结
前言:本博文主要讲解Python进程以及状态。文章目录一、进程二、进程的状态三、进程间不同享全局变量一、进程程序: 例如xxx.py这是程序,是一个静态的。进程: 一个程序运行起来后,代码+用到的资源称之为进程,它是操作系统分配资源的基本单元。进程是完成多任务的一种方式。二、进程的状态工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态。就绪态:运行的条件都已经慢去,正在等在cpu执行。执行态:cpu正在执行其功能。原创 2020-08-14 17:39:09 · 449 阅读 · 0 评论 -
Python进程通信之Queue
前言:Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。本博文主要讲解:进程间通信的Queue。友情链接:浅谈Python多进程中的multiprocessing浅谈Python多进程中的fork浅谈Python并发编程之进程池文章目录一、Queue的使用二、Queue的实例三、进程池中的Queue一、Queue的使用我们可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Que原创 2020-08-13 22:31:32 · 693 阅读 · 0 评论 -
Python并发编程之进程池
前言:本博文主要讲解Python并发编程中的进程池(Pool)。友情链接:浅谈Python多进程中的multiprocessing浅谈Python多进程中的fork浅谈Python并发编程之进程(守护进程、锁、信号量)文章目录一、进程池Pool二、apply堵塞式三、apply、apply_async的区别3.1 apply阻塞式3.2 apply_async异步非阻塞式一、进程池Pool引言:当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态原创 2020-08-11 21:42:48 · 709 阅读 · 0 评论 -
Python并发编程之进程(守护进程、锁、信号量)
前言:本博文是对Python并发编程之进程的知识延伸。友情链接:浅谈Python多进程中的multiprocessing浅谈Python多进程中的fork文章目录一、守护进程1.1 守护进程的概念1.2 守护进程的示例1.3 多个子进程的情况一、守护进程1.1 守护进程的概念首先我们都知道:正常情况下,主进程默认等待子进程调用结束之后再结束,守护进程在主进程所有代码执行完毕之后,自动终止。当然我们也可以使用kill -9 进程号,杀死进程。那么接下来,我们看一下守护进程的语法:进程对象原创 2020-08-09 18:01:34 · 922 阅读 · 0 评论 -
Python中time模块的用法
前言:在平常的代码中,我们常常需要与时间打交道。那么在Python中,与时间处理有关的模块就包括:time,datetime以及calendar,本篇博文讲主要讲解time模块。官方文档:time-时间访问和转换文章目录一、表示时间的方式二、常用函数一、表示时间的方式时间戳表示法: 即以整型或浮点型表示的是一个以秒为单位的时间间隔。这个时间的基础值是从1970年的1月1号零点开始算起。格式化的时间字符串: 即以格式化字符串的格式输出时间形式。元组格式表示法: 即一种Python的数据结构表示。这原创 2020-08-08 23:18:14 · 14624 阅读 · 0 评论 -
Python多进程中的fork
前言:当我们要实现Python多进程时,可以使用os模块中的fork()函数和multiprocessing模块,那么它们之间的用法和区别呢?下来,我们着重进行讲解:文章目录一、两者区别二、fork()三、getpid()、getppid()四、多进程修改全局变量五、多次fork问题一、两者区别首先,我们要搞清楚这两个模块的区别是什么?fork()是基于Unix/Linux内核的函数,在windows中无法使用。multiprocessing模块作为跨平台的存在。Unix/Linux操作系原创 2020-08-08 23:13:26 · 2091 阅读 · 0 评论 -
Python多进程中的multiprocessing
前言:一、多任务的引入在现实生活中,有很多的场景中的事情是同时进行的,比如开车的时候,手和脚共同来驾驶汽车;再比如,唱歌跳舞也是同时进行的。下来,我们在程序里面,模拟一下“唱歌跳舞”这件事情,如下:from time import sleepdef sing(): for i in range(3): print("正在唱歌...%d"%i) sleep(1) def dance(): for i in range(3):原创 2020-08-08 23:11:52 · 2865 阅读 · 2 评论 -
Python迭代器、生成器实现斐波拉契数列【必知必会】
友情链接:深究Python迭代器与生成器(建议收藏)Python实现斐波拉契数列和冒泡排序文章目录一、迭代器实现二、生成器实现三、生成器+itertools实现一、迭代器实现class myFibs(object): def __init__(self, control): self.a = 0 self.b = 1 self.control = control self.item_index = 0原创 2020-08-07 19:44:55 · 783 阅读 · 0 评论 -
Python伪私有属性总结
前言:在前面的博文里,我介绍了Python中的面向对象,详情见:深入浅出Python——Python高级语法之文件操作,本文将主要讲解with open() as读写文件的优点与作用。原创 2020-08-02 20:49:08 · 868 阅读 · 0 评论 -
Python使用with open() as读写文件【必知必会】
前言:在前面的博文里,我介绍了Python中的文件操作,详情见:深入浅出Python——Python高级语法之文件操作,本文将主要讲解with open() as读写文件的优点与作用。文章目录一、读文件抛出异常二、解决上述问题三、with open() as读写文件一、读文件抛出异常在之前的博文里,我们说到:要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:f = open('test.txt', 'r')标示符'r'表示读文件。这样,我们就成功地打开原创 2020-07-31 22:36:36 · 39137 阅读 · 2 评论 -
Python高阶函数总结
前言:本博文主要讲解Python高阶函数的概念与用法,更多知识请访问:深入浅出Python——Python高级语法之函数一、高阶函数把函数作为参数传入,这样的函数称为高阶函数,高阶函数是函数式编程的体现。函数式编程就是指这种高度抽象的编程范式。...原创 2020-07-30 20:07:46 · 1142 阅读 · 0 评论 -
Python中的匿名函数(lambda表达式)【建议收藏】
前言:本博文主要讲解Python中匿名函数(lambda)的概念与用法。文章目录一、lambda表达式二、lambda语法三、lambda体验四、lambda的参数形式1. 无参数2. 一个参数3. 默认参数4. 可变参数:*args5. 可变参数:**kwargs五、lambda的应用1. 带判断的lambda2. 列表数据按字典key的值排序六、lambda的特征一、lambda表达式lambda表达式,又称匿名函数,是现代各种编程语言争相引入的一种语法,其功能堪比函数,设计却比函数简洁。应用场原创 2020-07-30 19:45:20 · 1373 阅读 · 0 评论 -
Python中的递归【建议收藏】
前言:本博文主要讲解Python中的递归,之前在C#中也讲过递归的一些知识——深入理解C#方法重载和递归,有兴趣的朋友可以阅读一下!文章目录一、递归的应用场景二、生活中的递归1. 文字案例2. 图片案例三、递归的应用案例1. 应用:3以内数字累加和2. 应用:n以内数字阶乘3. 应用:斐波拉契数列四、递归的特点一、递归的应用场景递归是一种编程思想,应用场景:在我们日常开发中,如果要遍历一个文件夹下面所有的文件,通常会使用递归来实现。在后续的算法课程中,很多算法都离不开递归,例如:快速排序。递原创 2020-07-30 18:58:24 · 8406 阅读 · 1 评论