自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Python大家一起学

从零基础入门,一步一步走向高级编程。我承诺,所写的教程完全公开免费。

  • 博客(123)
  • 收藏
  • 关注

原创 第四天-循环结构

我们在写程序的时候,一定会遇到需要重复执行某条或某些指令的场景。例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向移动的指令。在这个场景中,让机器人向球门方向移动就是一个需要重复的动作,当然这里还会用到上一课讲的分支结构来判断机器人是否持球以及是否进入射门范围。再举一个简单的例子,如果要实现每隔1秒中在屏幕上打印一次“hello, world”并持续打印一个小时,我们肯定不能够直接把这句代码写3600遍,这里同样需要循环结构。

2023-11-23 10:22:07 62

原创 第三天-分支结构

Python入门

2023-11-16 09:01:52 68

原创 第二天-语言元素

Python入门教程

2023-11-16 08:46:51 71

原创 第一天 - 初识Python

python从入门到实战,以及自动化办公。

2023-11-14 18:29:10 45

原创 MySQL教程(基础篇)

最全的MySQL数据库教程,还在等什么,还不快来学习。

2023-11-09 19:07:36 107 1

原创 python判断语句

布尔类型:python中常用的有6种值(数据)类型定义变量存储布尔类型数据:变量名 = 布尔类型字面量布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。比较运算符。

2023-11-08 14:10:06 31

原创 python基础语法

python零基础的入门基础语法,学会后可进行更高级的进阶课程。

2023-11-08 12:44:07 96

原创 Python进阶之路 高级编程 正则表达式-使用split分隔字符串

使用split分隔字符串split函数用于根据正则表达式分隔字符,也就是说,将字符串中与模式匹配的子字符串都作为分隔符来分隔这个字符串。split函数返回一个列表形式的分隔结果,每一个列表元素都是分隔的子字符串。split函数的第1个参数是模式字符串,第2个参数是待分隔的字符串,如果待分隔的字符串非常大,可能并不希望对这个字符串永远使用模式字符串分隔下去,那么可以使用maxsplit关键词参数指...

2019-06-24 21:30:56 1062 2

原创 Python进阶之路 高级编程 正则表达式-用sub和subn搜索与替换

用sub和subn搜索与替换sub函数与subn函数用于实现搜索和替换功能。这两个函数的功能几乎完全相同,都是将某个字符串中所有匹配正则表达式的部分替换成其他字符串。用来替换的部分可能是一个字符串,也可以是一个函数,该函数返回一个用来替换的字符串。sub函数返回替换后的结果,subn函数返回一个元组,元组的第1个元素是替换后的结果,第2个元素是替换的总数。替换的字符串可以是普通的字符串,也可以...

2019-06-24 21:11:31 1881

原创 Python进阶之路 高级编程 正则表达式-使用findall和finditer查找每一次出现的位置

使用findall和finditer查找每一次出现的位置findall函数用于查询字符串中某个正则表达式模式全部的非重复出现的情况,这一点与search函数在执行字符串搜索时类似,但与match函数和search函数不同之处在于,findall函数总是返回一个包含搜索结果的列表。如果findall函数没有找到匹配的部分,就会返回一个空列表,如果匹配成功,列表将包含所有成功的匹配部分(从左到右按匹...

2019-06-21 23:50:27 1358

原创 Python进阶之路 高级编程 正则表达式-分组

分组如果一个模式字符串中有一对圆括号括起来的部分,那么这部分就会作为一组,可以通过group方法的参数获取指定的组匹配的字符串。当然,如果模式字符串中没有任何用圆括号括起来的部分,那么就不会对待匹配的字符串进行分组。m = re.match(r'(\d\d\d)-(\d\d)','123-45')在上面的代码中,模式字符串可以匹配以3个数字开头,后面跟着一个连字符(-),最后跟着2个数字的...

2019-06-20 09:04:07 270

原创 Python进阶之路 高级编程 正则表达式-重复、可选和特殊字符

重复、可选和特殊字符正则表达式中最常见的就是匹配一些重复的字符串,例如,匹配3个连续出现的a(aaa符合要求),或匹配至少出现一个0的字符串(0、00、000都符合要求)。要对这种重复模式进行匹配,需要使用两个符号:"*"和"+"。其中,"*"表示字符串出现0次到n次,"+"表示字符串出现1到n次。s = 'a*' # 使用"*"修饰astrlist = ['','a','aa','baa'...

2019-06-19 22:24:48 580

原创 Python进阶之路 高级编程 正则表达式-使用字符集

正则表达式-使用字符集如果待匹配的字符串中,某些字符可以有多个选择,就需要使用字符集([]),也就是一对中括号括起来的字符串。例如,[abc]表示a、b、c三个字符可以取其中任何一个,相当于’a|b|c’,所以对单个字符使用或关系时,字符集和择一匹配符的效果是一样的。m = re.match('[abcd]',a) # 使用字符集,匹配成功print(m.group()) # 运行结果:a...

2019-06-19 21:55:25 204

原创 Python进阶之路 高级编程 正则表达式-匹配任何单个字符

正则表达式-匹配任何单个字符文本模式字符串都是精确匹配,不过这种精确匹配的作用不打,在正则表达式中,最常用的是匹配一类字符串,而不是一个字符串。所以就需要使用一些特殊符号表示一类字符串。下面将介绍第1个可以匹配一类字符串的特殊符号:点(.)。这个符号可以匹配任意一个单个字符。m = re.match('.ind','bind') # 匹配成功在上面的代码中,文本模式字符串是’.ind’,第...

2019-06-18 21:58:26 1921

原创 Python进阶之路 高级编程 正则表达式-使用search方法在一个字符串中查找模式、匹配多个字符串

正则表达式 使用search方法在一个字符串中查找模式搜索是正则表达式的另一类常用的应用场景。也就是从一段文本中找到一个或多个与文本模式匹配的字符串。先从搜索一个匹配字符串开始。在一个字符串中搜索满足文本模式的字符串需要使用search方法,该方法的参数与match方法类似。m = re.search('abc','xabcy') # abc是文本模式字符串,xabcy是待搜索的字符串pr...

2019-06-18 21:28:15 5997

原创 Python进阶之路 高级编程-正则表达式 使用match方法匹配字符串

正则表达式 使用match方法匹配字符串匹配字符串是正则表达式中最常用的一类应用。也就是设定一个文本模式,然后判断另外一个字符串是否符合这个文本模式。本节会从最简单的文本模式开始。如果文本模式只是一个普通的字符串,那么待匹配的字符串和文本模式字符串在完全相等的情况下,match方法会认为匹配成功。match方法用于指定文本模式和待匹配的字符串。该方法的前两个参数必须指定,第1个参数表示文本模...

2019-06-18 21:01:10 949

原创 Python进阶之路 迭代器转换为列表、创建生成器、递归生成器

迭代器转换为列表尽管迭代器很好用,但仍然不具备某些功能,例如,通过索引获取某个元素,进行分片操作。这些操作都是列表的专利,所以在很多时候,需要将迭代器转换为列表。但有很多迭代器都是无限迭代的。因此,在讲迭代器转换为列表时,需要给迭代器能够迭代的元素限定一个范围,否则内存就会溢出。要想让迭代器停止迭代,值需要抛出StopIteration异常即可。通过list函数可以直接将迭代器转换为列表。[例...

2019-06-18 20:15:30 10171

原创 Python进阶之路 自定义可迭代的类

自定义可迭代的类列表可以获取列表的长度,然后使用变量i对列表索引进行循环,也可以获取集合的所有元素,且容易理解。没错,使用列表的代码是容易理解,也很好操作,但这是要付出代价的。列表之所以可以用索引来快速定位其中的任何一个元素,是因为列表是一下子将所有的数据都装载在内存中,而且是一块连续的内存空间。当数据量比较小时,实现比较容易;当数据量非常大时,会非常消耗内存资源。而迭代就不同,迭代是读取多少元...

2019-06-18 19:25:49 2157

原创 Python进阶之路 静态方法和类方法

静态方法和类方法Python类包含三种方法:实例方法、静态方法和类方法。其中,实例方法在前面的章节已经多次使用了。要想调用实例方法,必须要实例化类,然后才可以调用。也就是说,调用实例化方法需要类的实例(对象)。而静态方法在调用时根本不需要类的实例(静态方法不需要self参数),这一点和其他编程语言完全一样。类方法的调用方式与静态方法完全一样,所不同的是,类方法与实例方法的定义方式相同,都需要一...

2019-06-18 18:57:00 18891 5

原创 Python进阶之路 监控对象中所有的属性

监控对象中所有的属性尽管使用property函数可以将三个方法与一个属性绑定,在读写属性值和删除属性时会调用相应的方法进行处理,但是,如果需要监控的属性很多,则这样做就以为着在类中需要定义大量的getter和setter方法。所以说,property函数只是解决了外部调用这些属性的问题,并没有解决内部问题。本节介绍三个特殊成员方法__getattr__、__setattr__和__delattr...

2019-06-18 18:28:56 1565

原创 Python进阶之路 property函数监控读写操作

property函数在使用对象的属性时,按一般的理解直接使用obj.propertyName即可。同时希望可以监控对propertyName的读写操作。如果要鱼和熊掌兼得,那么就要使用property函数。property函数可以与三个方法绑定,该函数会创建一个属性,并通过返回值返回这个属性。property函数的第1个参数需要指定用于监控读属性值的方法,第2个参数需要指定用于写属性值的方法,...

2019-06-18 17:44:01 319

原创 Python进阶之路 从内建列表、字符串和字典继承

从内建列表、字符串和字典继承在实现自定义的序列/映射时,需要实现这4个方法,不过每次都要实现所有的4个方法太麻烦了,为此,Python提供了几个内建类(list、dict和str),分别实现列表、字典和字符串的默认操作。要实现自己的列表、字典和字符串,大可不必从头实现这4个方法,只需要从这三个类继承,并实现必需的方法即可。[例 10.5] 本例编写了三个类(CounterList、Counte...

2019-06-18 00:29:05 1328

原创 Python进阶之路 自定义序列

自定义序列除了构造方法__init__,还可以使用如下4个特殊方法定义自己的序列类,就像以前说过的列表、字典等序列一样,只不过拥有自己特殊的行为。所有的特殊方法在名称前后都需要双下划线__。__len__(self):返回序列中元素的个数。使用len函数获取序列对象的长度时会调用该方法。__getitem__(self,key):返回与所给键对应的值。__getitem__方法的第2个参数...

2019-06-17 23:42:22 680

原创 Python进阶之路 写入文件

写入文件Python允许你将内容写入文件,方式与print()函数将字符串"写"到屏幕上类似。但是,如果打开文件时用读模式,就不能写入文件。你需要以"写入纯文本模式"或"添加纯文本模式"打开该文件,或简称为"写模式"或"添加模式"。写模式将覆盖原有的文件,从头开始,就像你用一个新值覆写一个变量的值。将’w’作为第二个参数传递给open(),以写模式打开该文件。不同的是,添加模式将在已有文件的末...

2019-06-16 21:05:51 1258

原创 Python进阶之路 正则表达式之--用问号实现可选匹配

用问号实现可选匹配有时候,想匹配的模式是可选的。就是说,不论这段文本在不在,正则表达式都会认为匹配。字符?表明它前面的分组在这个模式中是可选的。import rebatregex = re.compile(r'Bat(wo)?man')mo = batregex.search('The Adventures of Batman')print(mo.group())mo1 = bat...

2019-06-14 14:53:58 2109 1

原创 Python进阶之路 正则表达式的创建与匹配

正则表达式的创建与匹配Python中有正则表达式的函数都在re模块中,所以第一步是先导入re模块。import re向re.compile()传入一个字符串值,表示正则表达式,它将返回一个Regex模式对象(或者就简称为Regex对象)。要创建一个Regex对象来匹配电话号码模式,就输入以下代码(回忆一下,\d表示"一个数字字符",\d\d\d-\d\d\d-\d\d\d\d是正确电话...

2019-06-13 21:16:40 310 2

原创 Python进阶之路 is开头的字符串方法

is开头的字符串方法(可用来检测用户输入验证是否符合要求)除了islower()和isupper(),还有几个字符串方法,它们的名字以is开始。这些方法返回一个布尔值,描述了字符串的特点。下面是一些常用的isX字符串方法:isalpha()返回True,如果字符串只包含字母,并且非空;isalnum()返回True,如果字符串只包含字母或数字,并且非空;isdecimal()返回True...

2019-06-13 14:26:17 788

原创 Python进阶之路 简单的棋盘游戏

棋盘游戏丼字棋盘看起来像一个大的丼字符号(#),有9个空格,可以包含X、O或空。要用字典表示棋盘,可以为每个空格分配一个字符串键。可以用字符串值来表示,棋盘上每个空格有什么:X、O或空格字符。因此,需要存储9个字符串。可以用一个字典来做这事。带有键’右上’的字符串表示右上角,带有键’左下’的字符串表示左下角,带有键’中’的字符串表示中间,以此类推。这个字典就是表示丼字棋盘的数据结构。输入以下...

2019-06-12 17:42:32 2381

原创 Python进阶之路 setdefault方法 查询字符串中每个字符出现的次数

5.1.5 setdefault方法你常常需要为字典中某个键设置一个默认值,当该键没有任何值时使用它。spam = {'name':'Pooka','age':19}if 'color' not in spam: spam['color'] = 'blak'setdefault()方法提供了一种方式,在一行中完成这件事。传递给该方法的第一个参数,是要检查的键。第二个参数,是如果该...

2019-06-12 09:11:23 498

原创 Python进阶之路 copy()和deepcopy()函数

copy模块的copy()和deepcopy()函数在处理列表和字典时,尽管传递引用常常是最方便的方法,但如果函数修改了传入的列表或字典,你可能不希望这些变动影响原来的列表或字典。要做到这一点,Python提供了名为copy的模块,其中包含copy()和deepcopy()函数。第一个函数copy.copy(),可以用来复制列表或字典这样的可变值,而不只是复制引用。import copys...

2019-06-11 21:25:58 8425

原创 Python进阶之路 用sort()方法将列表中的值排序

用sort()方法将列表中的值排序数值的列表或字符串的列表,能用sort()方法排序。例如,输入以下代码:spam = [2,5,3.14,1,-7]spam.sort()print(spam)输出结果:[-7, 1, 2, 3.14, 5]也可以指定reverse关键字参数为True,让sort()按逆序排序。输入以下代码:spam = [2,5,3.14,1,-7]spa...

2019-06-11 18:16:18 5526

原创 Python进阶之路 用append()和insert()方法在列表中添加值

用append()和insert()方法在列表中添加值要在列表中添加新值,就使用append()和insert()方法。对变量spam中的列表调用append()方法:spam = ['cat','dog','bat']spam.append('moose')print(spam)# 输出结果:['cat', 'dog', 'bat', 'moose']前面的append()方法调...

2019-06-11 14:03:01 11336

原创 Python进阶之路 多重赋值技巧

多重赋值技巧多重赋值技巧是一种快捷方式,让你在一行代码中,用列表中的值为多个变量赋值。cat = ['fat','black','loud']size = cat[0]color = cat[1]disposition = cat[2]像上面这样的赋值也不够简洁,让我们来试一试更简洁的方法。cat = ['fat', 'black', 'loud']size,color,disp...

2019-06-11 13:27:05 421

原创 Python进阶之路 in和not in操作符

in和not in操作符利用in和not in操作符,可以确定一个值是否在列表中。像其他操作符一样,in和 not in用在表达式中,连接两个值:一个要在列表中查找的值,以及待查找的列表。这些表达式将求值为布尔值。>>> 'howdy' in ['hello','hi','howdy','heyas']True>>> spam = ['hello','h...

2019-06-11 13:19:38 31277

原创 Python进阶之路 异常处理

异常处理到目前为止,在Python程序中遇到错误,或"异常",以为着整个程序崩溃。你不希望这发生在真实世界的程序中,相反,你希望程序能检测错误,处理它们,然后继续运行。例如,考虑以下程序,它有一个"除数为零"的错误。输入代码如下:def spam(divideby): return 42 / dividebyprint(spam(2))print(spam(12))print...

2019-06-10 21:56:19 241

原创 Python进阶之路 global语句

global语句如果需要在一个函数内修改全局变量,就使用global语句。如果在函数的顶部有global eggs这样的代码,它就告诉Python,"在这个函数中"eggs指的是全局变量,所以不要用这个名字创建一个局部变量。输入以下代码:def spam(): global eggs❶ eggs = 'spam'❷eggs = 'global'spam()print(e...

2019-06-10 21:26:16 1018

原创 Python进阶之路 9.3.6 异常捕捉中的finally子句

9.3.6 异常捕捉中的finally子句捕捉异常语句的最后一个子句是finally。从这个子句的名字基本上可以判定是做什么用的。所有需要最后收尾的代码都要放到finally子句中。不管是正常执行,还是抛出异常,最后都会执行finally子句中代码,所以应该在finally子句中放置关闭资源的代码,如关闭文件、关闭数据库等。如果使用return语句退出函数,那么首先执行finally自居中的代...

2019-06-06 21:59:19 1035

原创 Python进阶之路 9.3.5 异常捕捉中的else子句

9.3.5 异常捕捉中的else子句与循环语句类似,try…except语句也有else子句。与except子句正好相反,except子句中的代码会在try和except之间的代码抛出异常时执行,而else子句会在try和except之间的代码正常执行后才执行。可以利用else子句的这个特性控制循环体的执行,如果没有任何异常抛出,那么循环体就结束,否则一直处于循环状态。try: ......

2019-06-06 20:48:17 517 2

原创 Python进阶之路 9.3.4 捕捉对象

9.3.4 捕捉对象使用except子句捕捉了多个异常,但都是根据异常类来输出异常信息的。例如,如果抛出的是NegativeException类,就会输出"负数异常"信息。不过这么做是有问题的,因为可能有多处代码都抛出了同一个NegativeException类,尽管异常类似,但会有细微的差别。为了更进一步体现异常的差异性,需要为异常类执行一个变量,也可以称为异常对象。其实raise语句抛出的异...

2019-06-06 20:32:09 147

原创 Python进阶之路 9.3.3 用同一个代码块处理多个异常

9.3.3 用同一个代码块处理多个异常虽然代码块可能抛出多个异常,但有时多个异常的处理程序可以是一个,在这种情况下,如果用多个except子句捕捉这些异常,就需要在每一个except子句中使用同一段代码处理这些异常。为了解决这个问题,except子句允许指定多个异常,这样指定后,同一个except子句就可以捕捉多个异常了。try: ...except(异常类1,异常类2,异常类3,....

2019-06-06 19:58:27 516

MySQL数据库的基本操作

MySQL数据库的基本操作

2023-11-08

空空如也

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

TA关注的人

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