- 博客(29)
- 收藏
- 关注
原创 python基础知识(29)正则表达式
正则表达式是一个特殊的字符序列,用于判断一个字符串是否与我们所设定的字符序列是否匹配,也就是说检查一个字符串是否与某种模式匹配。Python 自 1.5 版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。re 模块使 Python 语言拥有全部的正则表达式功能。下面通过实例,一步一步来初步认识正则表达式。比如在一段字符串中寻找是否含有某个字符或某些字符,通常我们使用内置函数来实现,如下:# 设定一个常量。
2024-05-08 11:06:43
799
原创 python基础知识(28)线程和进程
同时执行多个任务通常各个任务之间并不是没有关联的,而是需要相互通信和协调,有时,任务 1 必须暂停等待任务 2 完成后才能继续执行,有时,任务 3 和任务 4 又不能同时执行,所以,多进程和多线程的程序的复杂度要远远高于我们前面写的单进程单线程的程序。请注意输出的结果,子进程 0,1,2,3是立刻执行的,而子进程 4 要等待前面某个子进程完成后才执行,这是因为 Pool 的默认大小在我的电脑上是 4,因此,最多同时执行 4 个进程。默认情况下,主线程退出之后,即使子线程没有 join。
2024-05-07 09:23:10
1016
原创 python基础知识(27)元类 2
通过上面的介绍,终于模模糊糊的带到元类这里来了。可是我们到现在还不知道元类是什么鬼东西。我们创建类的时候,大多数是为了创建类的实例对象。那么元类呢?元类就是用来创建类的。也可以换个理解方式就是:元类就是类的类。通过上面type()函数的介绍,我们知道可以通过type()函数创建类:实际上type()函数是一个元类。type()就是 Python 在背后用来创建所有类的元类。那么现在我们也可以猜到一下为什么type()函数是 type 而不是 Type呢?
2024-05-07 09:20:57
878
原创 python基础知识(25)枚举类
但有些时候我们需要控制枚举的类型,那么我们可以 Enum 派生出自定义类来满足这种需要。通过修改上面的例子:# @unique 装饰器可以帮助我们检查保证没有重复值@unique输出的结果如下:通过上面的例子,可以知道枚举模块定义了具有迭代 (interator) 和比较(comparison) 功能的枚举类型。它可以用来为值创建明确定义的符号,而不是使用具体的整数或字符串。
2024-04-29 14:32:31
1087
原创 python基础知识(24)Magic Method 2
经过之前编章的介绍,我们知道在 Python 中,常见的容器类型有: dict, tuple, list, string。其中也提到过可容器和不可变容器的概念。其中 tuple, string 是不可变容器,dict, list 是可变容器。可变容器和不可变容器的区别在于,不可变容器一旦赋值后,不可对其中的某个元素进行修改。当然具体的介绍,可以看回之前的文章,有图文介绍。那么这里先提出一个问题,这些数据结构就够我们开发使用吗?
2024-04-28 18:21:42
672
原创 python基础知识(23)Magic Method
在 Python 中,所有以 "__" 双下划线包起来的方法,都统称为"魔术方法"。可以看到,一个类的魔术方法还是挺多的,不过我们只需要了解一些常见和常用的魔术方法就好了。使用这些魔术方法,我们可以构造出优美的代码,将复杂的逻辑封装成简单的方法。我们可以使用 Python 内置的方法。那么一个类中有哪些魔术方法呢?魔术方法有什么作用呢?
2024-04-28 18:19:48
777
原创 python基础知识(22)模块与包
在 Python 函数中,如果一个函数调用了其他函数完成一项功能,我们称这个函数为主函数,如果一个函数没有调用其他函数,我们称这种函数为非主函数。主模块和非主模块的定义也类似,如果一个模块被直接使用,而没有被别人调用,我们称这个模块为主模块,如果一个模块被别人调用,我们称这个模块为非主模块。
2024-04-27 07:53:09
936
1
原创 python基础知识(21)模块与包
在开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。后面我们学习了函数,知道函数是实现一项或多项功能的一段程序,这样就更方便我们重复使用代码。紧接着,我们有学了类,类可以封装方法和变量(属性)。这样就更方便我们维护代码了。我们之前学过,类的结构是这样的:而我们要学的模块是这样的:在模块中,我们不但可以直接存放变量,还能存放函数,还能存放类。不知道你们还有没有印象,我们封装函数用的是def, 封装类用的是class。而我们封装模块,是不需要任何语句的。
2024-04-27 07:50:57
864
原创 python基础知识(20)面向对象 4
可以看到,userVip 和 userGeneral 是两个不同的对象,对它们调用 printUserInfo 方法,它们会自动调用实际类型的 printUser 方法,作出不同的响应。其实我们也可以把方法看成是类的属性的,那么方法的访问控制也是跟属性是一样的,也是没有实质上的私有方法。多态的概念其实不难理解,它是指对不同类型的变量进行相同的操作,它会根据对象(或类)类型的不同而表现出不同的行为。可以看到,我们对两个整数进行 + 操作,会返回它们的和,对两个字符进行相同的 + 操作,会返回拼接后的字符串。
2024-04-26 11:30:35
728
1
原创 python基础知识(19)面向对象 3
初始化函数的意思是,当你创建一个实例的时候,这个函数就会被调用。比如:当代码在执行的语句时,就自动调用了函数。而这个函数就是初始化函数,也叫构造函数。初始化函数的写法是固定的格式:中间是init,意思是初始化,然后前后都要有【两个下划线】,然后__init__()的括号中,第一个参数一定要写上self,不然会报错。构造函数(初始化函数)格式如下:Python 在版本的迭代中,有一个关于类的历史遗留问题,就是新式类和旧式类的问题,具体先看以下的代码:# 旧式类pass# 新式类。
2024-04-26 08:04:06
725
1
原创 python基础知识(18)面向对象 2
除此之外,在这里,还要强调一个概念,当你把类实例化之后,里面的属性和方法,就不叫类属性和类方法了,改为叫实例属性和实例方法,也可以叫对象属性和对象方法。如果这个问题我们需要验证的话,是不是要重写实例的方法,然后观察结果,看看类方法有没有改变,这样就能得出结果了。这很好理解,因为我们的实例对象就是根据类来复制出来的,类属性改变了,实例对象的属性也会跟着改变。从类结构来看,我们可以猜测,从类方法来修改,也就是从类内部来修改和增加类属性。回归正题,从运行的结果来看,类方法改变了,实例方法也是会跟着改变的。
2024-04-25 09:48:01
884
1
原创 python基础知识(17)面向对象 1
类是什么?个人认为理解类,最简单的方式就是:类是一个变量和函数的集合。可以看下下面的这张图。这张图很好的诠释了类,就是把变量和函数包装在一起。当然我们包装也不是毫无目的的包装,我们会把同性质的包装在一个类里,这样就方便我们重复使用。所以学到现在,你会发现很多编程的设计,都是为了我们能偷懒,重复使用。知道了类是什么样子的,我们接下来就要学习怎么去定义类了。类定义语法格式如下:可以看到,我们是用class语句来自定义一个类的,其实这就好比我们是用def语句来定义一个函数一样。
2024-04-24 10:16:04
1918
原创 python基础知识(16)迭代器和生成器
但是,这个例子非常不适合使用生成器,发挥不出生成器的特点,生成器的最好的应用应该是:你不想同一时间将所有计算出来的大量结果集分配到内存当中,特别是结果集里还包含循环。因为这样会耗很大的资源。不过有些知识点在之前的篇节中还没有提到,不过可以相应的看下,有编程基础的,学完上面的知识点应该也能理解的。反向迭代,应该也是常有的需求了,比如从一开始迭代的例子里,有个输出 list 的元素,从 1 到 5 的。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
2024-04-23 11:30:00
1013
原创 python基础知识(15)迭代器和生成器.1
之前经过我们的学习,都知道如何创建一个 list ,可是有些情况,用赋值的形式创建一个 list 太麻烦了,特别是有规律的 list ,一个一个的写,一个一个赋值,太麻烦了。比如在 Java 中,我们通过 List 集合的下标来遍历 List 集合中的元素,在 Python 中,给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple ,这种遍历就是迭代。那么 for 循环后面有 if 的形式呢?也就是说,只要是可迭代的对象,无论有没有下标,都是可以迭代的。
2024-04-23 07:20:44
876
原创 python基础知识(14)函数.2
匿名函数中,有一个特别需要注意的问题,比如,把上面的例子改一下:num2 = 100你会认为输出什么呢?第一个输出是 101,第二个是 10001,结果不是的,输出的结果是这样:1000110001。
2024-04-22 19:18:31
1090
原创 python基础知识(13)函数.1
函数,其实我们一开始学 Python 的时候就接触过。不过我们使用的大多数都是 Python 的内置函数。比如基本每个章节都会出现的print()函数。而现在,我们主要学习的是自定义函数。各位有没有想过为什么需要函数呢?如果要想回答这个问题,我们需要先了解函数是什么?函数就是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。没错,函数其实就是把代码抽象出来的代码段。那为什么要抽象出来呢?方便我们使用,方便我们重复使用。
2024-04-22 19:14:38
278
原创 python基础知识(12)条件语句和循环语句综合实例
打印语句中,大括号及其里面的字符 (称作格式化字段) 将会被 .format() 中的参数替换,注意有个点的。print('{0} 不是闰年' .format(year))print('{0} 是闰年' .format(year))year = int(input("请输入一个年份: "))
2024-04-22 19:12:00
366
原创 python基础知识(11)循环语句
一般编程语言都有循环语句,为什么呢?那就问一下自己,我们弄程序是为了干什么?那肯定是为了方便我们工作,优化我们的工作效率啊。而计算机和人类不同,计算机不怕苦也不怕累,也不需要休息,可以一直做。你要知道,计算机最擅长就是做重复的事情。所以这时候需要用到循环语句,循环语句允许我们执行一个语句或语句组多次。循环语句的一般形式如下:在 Python 提供了 for 循环和 while 循环。这里又有一个问题了,如果我想让他运行了一百次之后停止,那该怎么做呢?循环控制语句描述break。
2024-04-22 18:51:41
1837
原创 python基础知识(10)条件语句
Python 条件语句跟其他语言基本一致的,都是通过一条或多条语句的执行结果( True 或者 False )来决定执行的代码块。Python 程序语言指定任何非 0 和非空(null)值为 True,0 或者 null 为 False。
2024-04-22 18:38:23
975
原创 python基础知识(9)set
还有一点,我们观察到输出的结果是在大括号中的,经过之前的学习,可以知道,tuple (元组) 使用小括号,list (列表) 使用方括号, dict (字典) 使用的是大括号,dict 也是无序的,只不过 dict 保存的是 key-value 键值对值,而 set 可以理解为只保存 key 值。只是告诉你这个 set 内部有 456, 123, 789 这 3 个元素,显示的顺序跟你参数中的 list 里的元素的顺序是不一致的,这也说明了 set 是无序的。print('\n并集 set4:')
2024-04-22 13:28:16
837
原创 python基础知识(8)字典
上一章节,我们学习了列表(List) 和 元组(tuple) 来表示有序集合。而我们在讲列表(list)的时候,我们用了列表(list) 来存储用户的姓名。name = ['一点水', '两点水', '三点水', '四点水', '五点水']那么如果我们为了方便联系这些童鞋,要把电话号码也添加进去,该怎么做呢?
2024-04-21 23:35:55
916
1
原创 python基础知识(7)元组
上一节刚说了一个有序列表 List ,现在说另一种有序列表叫元组:tuple。tuple 和 List 非常类似,但是 tuple 一旦初始化就不能修改。也就是说元组(tuple)是不可变的,那么不可变是指什么意思呢?元组(tuple) 不可变是指当你创建了 tuple 时候,它就不能改变了,也就是说它也没有 append(),insert() 这样的方法,但它也有获取某个索引值的方法,但是不能赋值。那么为什么要有 tuple 呢?那是因为 tuple 是不可变的,所以代码更安全。
2024-04-21 23:34:35
924
1
原创 python基础知识(6)列表
List (列表)是 Python 内置的一种数据类型。它是一种有序的集合,可以随时添加和删除其中的元素。那为什么要有 List (列表)呢?我们用一个例子来说明。现在有一个团队要出去玩,要先报名。如果用我们之前学过的知识,那么就是用一个字符串变量把他们都记录起来。但是这样太麻烦了,而且也不美观。在编程中,一定要学会偷懒,避免「重复性工作」。如果有一百个成员,那么你及时是复制粘贴,也会把你写烦。这时候就可以使用列表了。就这样,一行代码就可以存放 N 多个名字了。
2024-04-21 15:59:41
628
原创 python基础知识(5)
在 Python 程序中,变量是用一个变量名表示,可以是任意数据类型,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头,比如:a=88这里的a就是一个变量,代表一个整数,注意一点是 Python 是不用声明数据类型的。在 Python 中是赋值语句,跟其他的编程语言也是一样的,因为 Python 定义变量时不需要声明数据类型,因此可以把任意的数据类型赋值给变量,且同一个变量可以反复赋值,而且可以是不同的数据类型。这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。
2024-04-21 15:49:05
380
1
原创 python基础知识(4)
我们都知道计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是 65,小写字母 z 的编码是 122。
2024-04-21 15:45:47
796
1
原创 python入门基础知识(3)数据类型和变量
每种语言都有自己的语法,不管是自然语言(英语,中文)还是计算机编程语言。Python 也不例外,它也有自己的语法规则,然后编辑器或者解析器根据符合语法的程序代码转换成 CPU 能够执行的机器码,然后执行。Python 的语法比较简单,采用缩进方式。如上面的代码截图,以 # 开头的语句是注释,其他每一行都是一个语句,当语句以冒号 : 结尾时,缩进的语句视为代码块。要注意的是 Python 程序是大小写敏感的,如果写错了大小写,程序会报错。
2024-04-21 15:44:14
1097
原创 python入门知识(2)
因为 Python 是跨平台的,它可以运行在 Windows、Mac 和各种 Linux/Unix 系统上。目前,Python 有两个版本,一个是 2.x 版,一个是 3.x版,这两个版本是不兼容的。我安装的是 3.6.1 版本的。至于在哪里下载,我建议大家最好直接官网下载,随时下载下来的都是最新版本。
2024-04-21 10:36:25
421
原创 python入门基础知识(1)
如果你有一定的编程语言基础,学习 Python 也是不错的选择,因为 Python 很可能就是未来开发的主流方向,多学一门语言,多一个防身技能。至此,Python 已经成为互联网开发的焦点。Python 在诞生之初,因为其功能不好,运转功率低,不支持多核,根本没有并发性可言,在计算功能不那么好的年代,一直没有火爆起来,甚至很多人根本不知道有这门语言。如果你是一名初学者,学习 Python 就是你最好的选择,因为它容易学,功能强大,很容易就能构建 Web 应用,非常适合初学者作为入门的开发语言。
2024-04-21 10:31:37
232
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人