自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 问答 (2)
  • 收藏
  • 关注

原创 20220316 技术点小结:如何将Series转换成Dataframe

文章目录第1类方法:直接将Series转化成Dataframe1.1 使用Pd.Dataframe()方法1.2 使用Series.to_fame()方法使用1.1 或 1.2方法之后,我们经常还需要Dataframe.reset_index()最后还需要修改列名总结一下代码:第2类方法:从字典的角度去创建Dataframe第1类方法:直接将Series转化成Dataframe1.1 使用Pd.Dataframe()方法1.2 使用Series.to_fame()方法这里有一个例子,一些文本分词后计

2022-03-16 17:24:47 19568 2

原创 20210402-20210330 第7部分 树与树算法

文章目录7. 树与树算法7.1 树的概念树的术语树的种类树的存储与表示常见的一些树的应用场景7.2 二叉树二叉树的基本概念二叉树的性质(特性)代码:二叉树的节点表示以及完全二叉树的创建7.3 二叉树的遍历深度优先遍历先序遍厉中序遍历后序遍历课堂练习: 按照如图树的结构写出三种遍历的顺序思考:我知道上面的三种遍历中的哪两种遍历结果,就能够反向推到出唯一的二叉树?广度优先遍历(层次遍历)7. 树与树算法7.1 树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来

2021-04-02 16:59:55 200

原创 20210330-20210329 第6部分 6. 排序与搜索(下)

文章目录6. 排序与搜索6.7 并归排序归并排序的分析实现代码时间复杂度6.8 常见排序算法效率比较6.9 搜索二分法查找二分法查找实现代码(非递归实现)二分法查找实现代码(递归实现)时间复杂度6. 排序与搜索6.7 并归排序归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解成最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即

2021-03-30 10:48:11 193

原创 20210328-20210326 第6部分 6. 排序与搜索(中)

文章目录6. 排序与搜索6.5 希尔排序希尔排序过程希尔排序的分析实现代码时间复杂度希尔排序的价值和意义希尔排序的动态演示6.6 快速排序快速排序的分析实现代码时间复杂度快速排序的动态演示6. 排序与搜索6.5 希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关

2021-03-28 20:12:13 137

原创 20210208-20210206 第6部分 6. 排序与搜索(上)

文章目录6. 排序与搜索6.1 排序算法的稳定性6.2 冒泡排序冒泡排序的分析实现代码时间复杂度冒泡排序效果的动态演示6.3 选择排序选择排序分析实现代码时间复杂度选择排序的动态演示6.4 插入排序插入排序分析实现代码时间复杂度插入排序的动态演示6. 排序与搜索排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。6.1 排序算法的稳定性稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和

2021-03-24 18:58:44 109

原创 20210206-20210205 第5部分 队列

文章目录5. 队列队列的实现操作实现代码双端队列操作实现代码5. 队列队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,总是在队列最后。这也比较符合我们通常生活中的习惯,排在第一个的优先出列

2021-02-06 09:51:19 167

原创 20210205 第4部分 栈

文章目录4. 栈栈结构实现栈的操作实现代码执行过程动态展示4. 栈栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端,英语:top)进行加入数据(称为“压栈/入栈”)(英语:push)和输出数据(称为“出栈/弹出”)(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In Fi

2021-02-05 17:42:00 154

原创 20210205 第3部分 链表(下)

文章目录3. 链表3.3 单向循环链表操作实现代码3.4 双向链表操作实现代码指定位置插入节点删除元素测试3. 链表3.3 单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。操作is_empty() 判断链表是否为空length() 返回链表的长度travel() 遍历add(item) 在头部添加一个节点append(item) 在尾部添加一个节点insert(pos, item) 在指定位置pos添加节点remove(

2021-02-05 12:55:24 152

原创 20210204-20210203 第3部分 链表(上)

文章目录3. 链表3.0 为什么需要链表3.1 链表的定义3.2 单向链表节点的实现代码单链表的操作单链表的实现代码头部添加元素尾部添加元素指定位置添加元素删除节点查找节点是否存在测试链表与顺序表的对比3. 链表3.0 为什么需要链表顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。3.1 链表的定义链表(Linked list)是一种常见的基础数据结构(自己定义,所以属

2021-02-04 18:21:29 132

原创 20210203-20210201 第2部分 顺序表

文章目录20210203-202102012. 顺序表2.1 顺序表的形式2.2 顺序表的结构与实现顺序表的结构顺序表的两种基本实现方式元素存储区替换元素存储区扩充扩充的两种策略2.3 顺序表的操作增加元素删除元素2.4 Python中的顺序表list的基本实现技术20210203-20210201在这一章中,老师首先讲了基本数据类型(字符、字符串、int、float)在计算机上的储存原理,包括物理地址的编号、存储区域是如何划格子定位的、各种基本数据占用的存储格子的数量、怎么区分占用32位的字符串不是4

2021-02-03 08:44:59 494

原创 20210131-20210113 第1部分 引入概念

文章目录20210131-202101130. 为什么要学习数据结构和算法1. 引入1.1 第1次尝试1.2 算法的提出算法的概念算法的5大特性202101141.3 第二次尝试1.4 算法效率衡量执行时间反映算法效率单靠时间值绝对可信吗?时间复杂度与“大O记法”20210115如何理解“大O记法”最坏时间复杂度时间复杂度的几条基本计算规则1.5 算法分析1.6 常见时间复杂度常见时间复杂度之间的关系1.7 Python 内置的性能分析功能timeit 模块class timeit.Timer(stmt='

2021-01-31 18:46:12 207

原创 20201224_152_PyPI官网_远程上传和管理模块_PIP方式安装模块

文章目录4.3 上传模块到 PyPI注册 PyPI 网站创建用户信息文件.pypirc上传并远程发布管理你的模块4.4 让别人使用你的模块4.3 上传模块到 PyPI将自己开发好的模块上传到 PyPI 网站上,将成为公开的资源,可以让全球用户自由使用。按照如下步骤做,很容易就实现上传模块操作。注册 PyPI 网站注册 PyPI 网站:http://pypi.python.org注意:会发送一封邮件到你的邮箱。请点击验证后继续下面的步骤。创建用户信息文件.pypirc方式 1: 使用命令(适用

2020-12-25 07:58:43 994

原创 20201224_151_模块的本地发布_模块的安装

文章目录4. 模块发布和安装4.1 模块的本地发布4.2 本地安装模块4. 模块发布和安装4.1 模块的本地发布当我们完成了某个模块开发后,可以将他对外发布,其他开发者也可以以“第三方扩展库”的方式使用我们的模块。我们按照如下步骤即可实现模块的发布:为模块文件创建如下结构的文件夹(一般,文件夹的名字和模块的名字一样):2.在文件夹中创建一个名为“setup.py”的文件,内容如下:from distutils.core import setup# distutils 指归档文件包se

2020-12-25 07:54:13 148 2

原创 20201223_150_sys.path和模块搜索路径详解

文章目录3.7 sys.path 和模块搜索路径使用 sys.path 查看和临时修改搜索路径pythonpath 环境变量的设置.pth 文件的写法3.7 sys.path 和模块搜索路径当我们导入某个模块文件时, Python 解释器去哪里找这个文件呢?只有找到这个文件才能读取、装载运行该模块文件。它一般按照如下路径寻找模块文件(按照顺序寻找,找到即停不继续往下寻找):内置模块即在程序中import的模块;当前目录指在当前工作路径下,例如下图:我正在编辑 module_AA1.py 的话

2020-12-25 07:48:09 360 2

原创 20201223_149_包的本质和init文件_批量导入_包内引用

文章目录3.4 导入包的本质3.5 用*导入包3.6 包内引用3.4 导入包的本质导入包的本质其实是“导入了包的__init__.py”文件。也就是说,”import pack1”意味着执行了包 pack1 下面的__init__.py 文件。 这样,可以在__init__.py 中批量导入我们需要的模块,而不再需要一个个导入。【例1】包 a 的 __init__.py 定义中,如下图:所以实际上导入 a 包的时候就是批量导入了 turtle 和 math 两个包。并且,再单独导入 math

2020-12-24 14:15:02 259

原创 20201223_148_包的概念和创建包和导入包

文章目录3. 包 package 的使用3.1 包(package)的概念和结构3.2 pycharm 中创建包3.3 导入包操作3. 包 package 的使用3.1 包(package)的概念和结构当一个项目中有很多个模块时,需要再进行组织。我们将功能类似的模块放到一起,形成了“包”。本质上,“包”就是一个必须有__init__.py 的文件夹。典型结构如下:包下面可以包含“模块(module)”,也可以再包含“子包(subpackage)”。就像文件夹下面可以有文件,也可以有子文件夹一样。

2020-12-24 14:12:16 172

原创 20201223_147_import加载底层原理_importlib模块

文章目录2.4 __import__()动态导入2.5 模块的加载问题重新加载2.4 import()动态导入import 语句本质上就是调用内置函数__import__(),我们可以通过它实现动态导入,即给__import__()动态传递不同的的参数值,就能导入不同的模块。【例】使用__import__()动态导入指定的模块s = 'math'm = __import__(s) # 导入后生成的模块对象引用给变量mprint(m.pi)运行结果:注意:一般不建议我们自行使用__i

2020-12-24 14:10:16 180

原创 20201222_146_模块导入_import 和 from_import 语句详解和区别

文章目录2. 模块的导入2.1 import 语句导入2.2 from…import 导入2.3 import 语句和 from...import 语句的区别2. 模块的导入模块化设计的好处之一就是“代码可复用性高”。写好的模块可以被反复调用,重复使用。模块的导入就是“在本模块中使用其他模块”。2.1 import 语句导入import 语句的基本语法格式如下:import 模块名 #导入一个模块import 模块 1,模块 2… #导入多个模块import 模块名 as 模块别名 #导

2020-12-23 13:20:18 1134

原创 20201222_145_模块化编程的流程_设计和实现分离

文章目录1.4 模块化编程的流程1.5 模块的 API 和功能描述要点1.6 模块文档字符串和 API 设计1.7 模块的创建和测试代码1.4 模块化编程的流程模块化编程的一般流程:设计 API,进行功能描述;编码实现 API 中描述的功能;在模块中编写测试代码,并消除全局代码;使用私有函数实现不被外部客户端调用的模块函数。1.5 模块的 API 和功能描述要点API(Application Programming Interface 应用程序编程接口)是用于描述模块中提供的函数和类的功

2020-12-23 13:16:52 261

原创 20201222_144_模块化编程理念_什么是模块_哲学思想

文章目录第七章 模块(module)1. 模块化(module)程序设计理念1.1 模块和包概念的进化史1.2 标准库模块(standard library)1.3 为什么需要模块化编程第七章 模块(module)1. 模块化(module)程序设计理念1.1 模块和包概念的进化史“量变引起质变”是哲学中一个重要的理论。量变为什么会引起质变呢?本质上理解,随着数量的增加,管理方式会发生本质的变化;旧的管理方式完全不适合,必须采用新的管理方式。程序越来越复杂,语句多了,怎么管理?很自然的,我们将实现

2020-12-23 13:12:15 330

原创 20201222_143__递归算法原理_目录树结构展示

【例】使用递归算法遍历目录下所有文件import osall_file = []def get_files(path, level): sub_files = os.listdir(path) for file in sub_files: file_path = os.path.join(path, file) if os.path.isdir(file_path): get_files(file_path, level +

2020-12-22 10:38:32 87

原创 20201222_142_递归算法原理_阶乘计算

递归算法递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。利用递归可以用简单的程序来解决一些复杂的问题。比如:斐波那契数列的计算、汉诺塔、快排等问题。递归结构包括两个部分: 定义递归头:什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。 递归体:什么时候需要调用自身方法。【例】使用递归求 n!def factorial(n): if n == 1: retu

2020-12-22 10:37:01 125

原创 20201221_141_shutil和zipfile模块_压缩和解压缩

【例1】实现将文件夹所有内容压缩(使用 shutil 模块 + zipfile模块)import shutilimport zipfile# 将test01文件夹下所有内容压缩到“test03”文件下,生成testzip.zipshutil.make_archive('test03/testzip', 'zip', 'test01')# zipfile模块的压缩功能相比于shutil模块中的压缩功能更加全面一些# 压缩:将指定的多个文件压缩到一个zip文件中z = zipfile.ZipF

2020-12-22 10:35:42 114

原创 20201221_140_shutil模块_文件和目录拷贝

shutil 模块(拷贝和压缩)shutil 模块是 python 标准库中提供的,主要用来做文件和文件夹的拷贝、移动、删除等;还可以做文件和文件夹的压缩、解压缩操作。os 模块提供了对目录或文件的一般操作。shutil 模块作为补充,提供了移动、复制、压缩、解压等操作,这些 os 模块都没有提供。【例1】实现文件的拷贝import shutil# copy文件内容shutil.copyfile('a.txt','a_copy.txt')运行结果:【例2】实现递归的拷贝文件夹内容(使

2020-12-22 10:34:04 288 3

原创 20201221_139__os模块_使用walk遍历

walk()递归遍历所有文件和目录os.walk()方法:返回一个 3 个元素的元组,(dirpath, dirnames, filenames)。dirpath:指定目录的路径dirnames:目录下的所有文件夹filenames:目录下的所有文件【例】使用 walk()递归遍历所有文件和目录import osall_files = []path = os.getcwd()list_files = os.walk(path)for dir_path, dir_names,

2020-12-22 10:32:06 123

原创 20201220_138_os.path模块_常用方法

os.path 模块os.path 模块提供了目录相关(路径判断、路径切分、路径连接、文件夹遍历)的操作方法描述isabs(path)判断path是否为绝对路径isdir(path)判断路径是否为目录isfile(path)判断路径是否为文件exists(path)判断指定路径的文件是否存在getsize(filename)返回文件的大小abspath(path)返回文件的绝对路径dirname§返回所在目录getctime(f

2020-12-22 10:31:10 142

原创 20201217_137_os模块_获得文件信息_创建文件夹_递归创建

os 模块-文件和目录操作我们可以通过前面讲的文件对象实现对于文件内容的读写操作,如果还需要对文件和目录做其他操作,可以使用 os 和 os.path 模块。os 模块下常用操作文件的方法方法名描述remove(path)删除指定文件rename(src,dest)重命名文件或者目录stat(path)返回文件的所有属性listdir(path)返回path目录下的文件和目录列表注释:scr abbr. 源文件(source)dest 目的对象

2020-12-21 11:23:49 96

原创 20201217_136_os模块_调用操作系统可执行文件_控制台乱码问题

os 和 os.path 模块os 模块(operate system)可以帮助我们直接对操作系统进行操作。我们可以直接调用操作系统的可执行文件、命令,直接操作文件、目录等等。在系统运维的核心基础。os 模块-调用操作系统命令通过 os.system 直接调用系统的命令【例1】os.system 调用 windows 系统的记事本程序import osos.system('notepad.exe')运行结果:打开了记事本程序【例2】os.system 调用 windows 系统中 p

2020-12-21 11:23:11 238

原创 20201216_135_CSV文件的读取_写入

CSV 文件的操作csv(Comma Separated Values)是逗号分隔符文本格式,常用于数据交换、Excel文件和数据库数据的导入和导出。与 Excel 文件不同,CSV 文件中:值没有类型,所有值都是字符串不能指定字体颜色等样式不能指定单元格的宽高,不能合并单元格没有多个工作表不能嵌入图像图表Python 标准库的模块 csv 提供了读取和写入 csv 格式文件的对象。我们在 excel 中建立一个简单的表格:另存为"csv(逗号分隔)",我们打开查看这个 csv 文件

2020-12-21 11:19:12 98

原创 20201214_134_使用pickle实现序列化和反序列化

使用 pickle 序列化Python 中,一切皆对象,对象本质上就是一个“存储数据的内存块”。有时候,我们需要将“内存块的数据”保存到硬盘上,或者通过网络传输到其他的计算机上。这时候,就需要用到“对象的序列化和反序列化”(二进制序列)。对象的序列化机制广泛的应用在分布式、并行系统上。序列化指的是:将对象转化成“串行化”数据形式,存储到硬盘或通过网络传输到其他地方。反序列化是指相反的过程,将读取到的“串行化数据”转化成对象。我们可以使用 pickle 模块中的函数,实现序列化和反序列操作。实现序列化

2020-12-18 11:22:41 209

原创 20201213_133_文件对象常用方法和属性总结_seek()任意位置操作

文件对象的常用属性和方法文件对象封装了文件相关的操作。在前面我们学习了通过文件对象对文件进行读写操作。本节中详细列出文件对象的常用属性和方法,并进行说明。文件对象的属性属性说明name返回文件的名字mode返回文件的打开模式closed若文件关闭则返回True文件对象的打开模式模式说明rread,只读模式wwrite,写模式aappend,追加模式bbinary,二进制模式(可与其他模式组合使用)+读写

2020-12-18 11:21:25 240

原创 20201213_132_二进制文件的读写_图片文件拷贝

二进制文件的读取和写入二进制文件的处理流程和文本文件流程一致。首先还是要创建文件对象,区别是,我们还需要指定二进制模式,从而创建出二进制文件对象。例如:f = open(r"d:\a.txt", 'wb') # 可写的、重写模式的二进制文件对象f = open(r"d:\a.txt", 'ab') # 可写的、追加模式的二进制文件对象f = open(r"d:\a.txt", 'rb') # 可读的二进制文件对象创建好二进制文件对象后,仍然可以使用 write()、read()实现文件的读

2020-12-18 11:20:25 140

原创 20201213_131_enumerate()函数和推导式生成列表_操作每行增加行号

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。enumerate方法的语法:enumerate(sequence, [start=0]) # start= 是定义下标起始数字,默认是0。【例1】试用enumerate方法direction = ['east', 'south', 'west', 'north']a = enumerate(direction)print(a)print(l

2020-12-18 11:19:50 179

原创 20201213_130_文本文件的读取

文本文件的读取文件的读取一般使用如下三个方法:read([size])从文件中读取 size 个字符,并作为结果返回。如果没有 size 参数,则默认读取整个文件。读取到文件末尾,会返回空字符串。readline()读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。readlines()文本文件中,每一行作为一个字符串存入列表中,返回该列表。下面看看应用示例:【例1】读取一个文件的前 12 个字符with open(r'f:\a.txt', 'r', encoding='ut

2020-12-18 11:18:51 170

原创 20201211_129_关闭流要点2_with上下文管理_现场还原

with 语句(上下文管理器)with 关键字(上下文管理器)可以自动管理上下文资源,不论什么原因跳出 with 块,都能确保文件正确地关闭,且可以在代码块执行完毕后自动还原进入该代码块时的现场。【例】使用 with 管理文件写入操作s = ['学习的第一天,OK\n', '学习的第二天,OK', '学习的第三天,OK']with open(r'f:\a.txt', 'w', encoding='utf-8') as f: f.writelines(s)...

2020-12-13 21:35:29 117

原创 20201211_128_关闭流要点1_try异常管理

write()/writelines()写入数据write(a):用于把指定字符串写入到文件中。writelines(b):用于向文件中写入一序列的字符串,这一序列字符串可以是由迭代对象产生的,如一个字符串列表。换行需要制定换行符 \n。【例】添加字符串列表数据到文件中f = open(r'f:\a.txt', 'w', encoding='utf-8')s = ['学习的第一天,OK\n', '学习的第二天,OK', '学习的第三天,OK']f.writelines(s)f.close

2020-12-13 21:34:48 160

原创 20201211_127_编码知识_中文乱码问题解决

常用编码介绍在操作文本文件时,经常会操作中文,这时候就经常会碰到乱码问题。为了让大家有能力解决中文乱码问题,这里简单介绍一下各种编码之间的关系。常用编码之间的关系如下:ASCII全称为 American Standard Code for Information Interchange,美国信息交换标准代码,这是世界上最早最通用的单字节编码系统,主要用来显示现代英语及其他西欧语言。ASCII 码用 7 位表示,只能表示 128 个字符。只定义了 2^7=128 个字符,用7bit 即可完全编码,

2020-12-13 21:33:47 3647

原创 20201211_126_file文件操作_操作系统底层关系_写入文件

第八章 文件操作(IO 技术)一个完整的程序一般都包括数据的存储和读取;我们在前面写的程序数据都没有进行实际的存储,因此 python 解释器执行完数据就消失了。实际开发中,我们经常需要从外部存储介质(硬盘、光盘、U 盘等)读取数据,或者将程序产生的数据存储到文件中,实现“持久化”保存。有基础的同学知道,很多软件系统是将数据存储的数据库中;数据库实际也是基于文件形式存储的,本章我们就学习文件的相关操作。文本文件和二进制文件按文件中数据组织形式,我们把文件分为文本文件和二进制文件两大类。文本文件

2020-12-13 21:29:35 129

原创 20201211_125_pycharm的调试模式

Pycharm 开发环境的调试进行调试的核心是设置断点。程序执行到断点时,暂时挂起,停止执行。就像看视频按下暂停一样,我们可以详细的观看暂停处的每一个细节,就可以看清楚程序运行的来龙去脉。断点程序运行到此处,暂时挂起,停止执行。我们可以详细在此时观察程序的运行情况,方便做出进一步的判断。设置断点:(1) 在行号后面单击即可增加断点(2) 在断点上再单击即可取消断点进入调试视图通过如下三种方式都可以进入调试视图:(1) 单击工具栏上的按钮:(2) 右键单击编辑区,点击:debug

2020-12-13 21:27:22 303

原创 20201210_124_自定义异常类_raise抛出异常

自定义异常类程序开发中,有时候我们也需要自己定义异常类。自定义异常类一般都是运行时异常,通常继承 Exception 或其子类即可。命名一般以 Error、Exception 为后缀。自定义异常由 raise 语句主动抛出。【例】自定义异常类和 raise 语句class AgeError(Exception): # 继承父类Exception def __init__(self, error_info): Exception.__init__(self)

2020-12-12 07:41:12 217

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除