
Python语言基础
文章平均质量分 88
以实战为线索,逐步深入Python开发各个环节,掌握python常用性能体验优化思路,打造完整python工作流,提升工程化编码能力和思维能力.
侯默辛普森
这个作者很懒,什么都没留下…
展开
-
第020课:⽤Python解析HTML⻚⾯
⽂档,修复含有未闭合标签等错误的⽂档,通过为待解析的⻚⾯在内存中创建⼀棵树结构,实现对从⻚⾯中提取数据操作的封装。⻚⾯当成⼀个字符串,使⽤正则表达式的捕获组提取出了需要的内容。获取⽹络资源,如果我们获取到⼀个或多个⻚⾯,需要从⻚⾯中提取出指定的信息,⾸先得掌握解析HTML。标签下的内容不会显示在浏览器窗⼝中,但是却包含了⻚⾯重要的元信息,通常称之为⽹⻚的头部。标签是整个⻚⾯根标签的开始标签,最后⼀⾏是根标签的结束标签 ⻚⾯的三要素,其中标签⽤来承载⻚⾯要显示的内容,CSS。原创 2023-02-01 13:41:52 · 196 阅读 · 1 评论 -
第019课:⽤Python获取⽹络数据
在下⼀节课中,我们将会为⼤家介绍另外两种从⻚⾯中提取数据的⽅法,虽然从性能上来讲,它们可能不如正则表达式,但是却降低了编码的复杂性,相信⼤家会喜欢上它们的。即便是在⼤数据时代,数据对于中⼩企业来说仍然是硬伤和短板,有些数据需要通过开放或付费的数据接⼝来获得,其他的⾏业数据则必须要通过⽹络数据采集的⽅式来获得。有的时候,我们需要的数据并不能通过开放数据接⼝来获得,但是可能在某些⽹⻚上能够获取到,这个时候就需要我们开发爬⾍程序通过爬取⻚⾯来获得需要的内容。的解释器环境,我们看到的⽹⻚中的内容都包含在HTML。原创 2023-01-31 19:26:04 · 325 阅读 · 0 评论 -
第018课:⽤Python读写Excel⽂件
对象,再通过该对象的属性对字体、对⻬⽅式、边框等进⾏设定,例如在上⾯的例⼦中,如果希望将表头单元格的背景⾊修改为⻩⾊,可以按照如下的⽅式进⾏操作。凭借其直观的界⾯、出⾊的计算功能和图表⼯具,再加上成功的市场营销,⼀直以来都是最为流⾏的个⼈计算机数据处理软件。⽅法可以向指定单元格中写⼊数据,最后通过⼯作簿对象的save ⽅法将⼯作簿写⼊到指定的⽂件或内存中。如果要调整单元格的宽度(列宽)和表头的⾼度(⾏⾼),可以按照下⾯的代码进⾏操作。⽂件,如果想读取并显示该⽂件的内容,可以通过如下所示的代码来完成。原创 2023-01-29 11:21:33 · 183 阅读 · 2 评论 -
第017课:⽤Python读写CSV⽂件
quoting参数来指定分隔符(默认是逗号)、包围值的字符(默认是双引号)以及包围的⽅式。其中,包围值的字符主要⽤于当字段中有特殊符号时,通过添加包围值的字符可以避免⼆义性。)全称逗号分隔值⽂件是⼀种简单、通⽤的⽂件格式,被⼴泛的应⽤于应⽤程序(数据库、电⼦表格等)数据的导⼊和导出以及异构系统之间的数据交换。是纯⽂本⽂件,不管是什么操作系统和编程语⾔都是可以处理纯⽂本的,⽽且很多编程语⾔中都提供了对读写CSV⽂件的⽀持,因此。库中最重要的类,它封装了⼀系列的⽅法⽤于对数据进⾏处理(清洗、转换、聚合等);原创 2023-01-28 17:52:14 · 172 阅读 · 0 评论 -
第016课:⽂件读写和异常处理
的抽象逻辑概念代替了硬盘、光盘、闪存等物理设备的数据块概念,⽤户使⽤⽂件系统来保存数据时,不必关⼼数据实际保存在硬盘的哪个数据块上,只需要记住这个⽂件的路径和⽂件名。下⾯的例⼦演示了如何读取⼀个纯⽂本⽂件(⼀般指只有字符原⽣编码构成的⽂件,与富⽂本相⽐,纯⽂本不包含字符样式的控制元素,能够被最简单的⽂本编辑器直接读取)。中内置了⼤量的异常类型,除了上⾯代码中⽤到的异常类型以及之前的课程中遇到过的异常类型 外,还有许多的异常类型,其继承结构如下所示。如果要关闭打开的⽂件,可以使⽤⽂件对象的 close。原创 2023-01-27 21:47:56 · 99 阅读 · 0 评论 -
第015课:⾯向对象编程⼊⻔
类是抽象的,对象是具体的,有了类就能创建对象,有了对象就可以接收消息,这就是⾯向对象编程的基础。我们在类中定义的对象⽅法其实就是⼀种封装,这种封装可以让我们在创建对象之后,只需要给对象发送⼀个消息就可以执⾏⽅法中的代码,也就是说我们在只知道⽅法的名字和参数(⽅法的外部视图)。例⼦1:定义⼀个类描述数字时钟。例⼦2:定义⼀个类描述平⾯上的点,要求提供计算到另⼀个点距离的⽅法。原创 2023-01-25 21:23:47 · 156 阅读 · 2 评论 -
第014课:常⽤数据结构之字典
例⼦1:输⼊⼀段话,统计每个英⽂字例⼦2:在⼀个字典中保存了股票的代码和价格,找出股价⼤于100元的股票并创建⼀个新的字典。程序中的字典跟现实⽣活中的字典很像,它以键值对(键和值的组合)的⽅式把数据组织到⼀起,我们可以通过键找到与之对应的值并进⾏操作。就像《新华字典》中,每个字(键)都有与它对应的解释(值)⼀样,每个字和它的解释合在⼀起就是字典中的⼀个条⽬,⽽字典中通常包含了很多个这样的条⽬。)是不能作为字典中的键的,当然字典类型本身也不能再作为字典中的键,因为字典也是可变类型,但是字典可以作为字典中的值。原创 2023-01-26 19:58:42 · 101 阅读 · 1 评论 -
第013课:常⽤数据结构之集合
程序中的集合跟数学上的集合是完全⼀致的,需要强调的是上⾯所说的⽆序性和互异性。⽆序性说明集合中的元素并不像列中的元素那样⼀个挨着⼀个,可以通过索引的⽅式实现随机访问(随机访问指的是给定⼀个有效的范围,随机抽取出⼀个数字,然后通过这个数字获取到对应的元素),所以Python中的。中的集合跟数学上的集合⼀样,可以进⾏交集、并集、差集等运算,⽽且可以通过运算符和⽅法调⽤两种⽅式来进⾏操作,代码如下所示。:给定⼀个集合,任给⼀个元素,该元素或者属于或者不属于该集合,⼆者必居其⼀,不允许有模棱两可的情况出现。原创 2023-01-24 18:17:30 · 110 阅读 · 0 评论 -
第012课:常⽤数据结构之元组
元组和列表的不同之处在于,元组是不可变类型,这就意味着元组类型的变量⼀旦定义,其中的元素不能再添加或删除,⽽且元素的值也不能进⾏修改。交换两个变量的值是编程语⾔中的⼀个经典案例,在很多编程语⾔中,交换两个变量的值都需要借助⼀个中间变量才能做到,如果不⽤中间变量就需要使⽤⽐较晦涩的位运算来实现。当我们把⼀个元组赋值给多个变量时,元组会解包成多个值然后分别赋给对应的变量,如下⾯的代码所示。现在我们可以反过来思考⼀下函数的可变参数,可变参数其实就是将多个参数打包成了⼀个元组,可以通过下⾯的代码来证明这⼀点。原创 2023-01-23 21:18:34 · 102 阅读 · 0 评论 -
第011课:常⽤数据结构之列表
需要说明的是,列表是⼀种可变数据类型,也就是说列表可以添加元素、删除元素、更新元素,这⼀点跟我们上⼀课讲到的字符串有着鲜明的差别。字符串是⼀种不可变数据类型,也就是说对字符串做拼接、重复、转换⼤⼩写、修剪空格等操作的时候会产⽣新的字符串,原来的字符串并没有发⽣任何改变。跟上⼀课我们讲到的字符串类型⼀样,列表也是⼀种结构化的、⾮标量类型,操作⼀个列表类型的变量,除了可以使⽤运算符还可以使⽤它的⽅法。值得⼀提的是,由于列表是可变类型,所以通过索引操作既可以获取列表中的元素,也可以更新列表中的元素。原创 2023-01-22 21:04:05 · 97 阅读 · 0 评论 -
第010课:函数和字符串的应⽤
经典⼩案例例⼦1:设计⼀个⽣成指定⻓度验证码的函数。例⼦2:设计⼀个函数返回给定⽂件名的后缀名。例⼦3:在终端中显示跑⻢灯(滚动)⽂字。原创 2023-01-21 18:53:20 · 170 阅读 · 0 评论 -
第009课:字符串的使⽤
需要说明的是,因为字符串在计算机内存中也是以⼆进制形式存在的,那么字符串的⼤⼩⽐较⽐的是每个字符对应的编码的⼤⼩。来⽐较两个字符串,它⽐较的是两个变量对应的字符串是否在内存中相同的位置 (内存地址),简单的说就是两个变量是否对应内存中的同⼀个字符串。开头,这种字符串被称为原始字符串,意思是字符串中的每个字符都是它本来的含义,没有所谓的转义字符。中,我们可以通过字符串类型⾃带的⽅法对字符串进⾏操作和处理,对于⼀个字符串类型的变量,我们可以⽤ 变量名。,前者是⼋进制的表示法,后者是⼗六进制的表示法。原创 2023-01-21 16:46:13 · 168 阅读 · 0 评论 -
第008课:函数和模块
关键字来定义函数,和变量⼀样每个函数也应该有⼀个漂亮的名字,命名规则跟变量的命名规则是⼀致的(赶紧想⼀想我们之前讲过的变量的命名规则)。在函数名后⾯的圆括号中可以放置传递给函数的参数,就是我们刚才说到的函数的⾃变量,⽽函数执⾏完成后我们会通过return 关键字来返回函数的执⾏结果,就是我们刚才说的函数的因变量。但是,如果我们如果从两个不同的模块中导⼊了同名的函数,后导⼊的函数会覆盖掉先前的导⼊,就像下⾯的代码中,调⽤ foo。另外,在定义函数时,函数也可以没有⾃变量,但是函数名后⾯的圆括号是必须有的。原创 2023-01-20 23:06:13 · 89 阅读 · 0 评论 -
第007课:分⽀和循环结构的应⽤
寻找⽔仙花数,百钱百鸡问题。CRAPS赌博游戏。斐波那契数列。打印素数。原创 2023-01-20 22:43:34 · 504 阅读 · 0 评论 -
第006课:循环结构
for-in循环,while循环,break和continue,嵌套的循环结构,如何通过嵌套的循环来输出⼀个乘法⼝诀表(九九表),输⼊⼀个正整数判断它是不是素数。输⼊两个正整数,计算它们的最⼤公约数和最⼩公倍数。原创 2023-01-19 20:27:24 · 132 阅读 · 0 评论 -
第005课:分⽀结构
当然根据实际开发的需要,分⽀结构是可以嵌套的,例如判断是否通关以后还要根据你获得的宝物或者道具的数量对你的表现给出等级(⽐如点亮两颗或三颗星星),那么我们就需要在 if。else 中也可以再构造新的分⽀,我们称之为嵌套的分⽀结构,也就是说上⾯的代码也可以写成下⾯的样⼦。仅有顺序结构并不能解决所有的问题,⽐如我们设计⼀个游戏,游戏第⼀关的通关条件是玩家获得。很多,会严重的影响代码的可读性,所以能使⽤扁平化结构时就不要使⽤嵌套结构。(注意是英⽂输⼊法⽽不是中⽂输⼊法的英⽂输⼊模式),这样可以避免很多。原创 2023-01-19 20:14:37 · 85 阅读 · 0 评论 -
第004课:Python语⾔元素之运算符
、 < 、 > 、 、 >= ,我相信没有什么好解释 的,⼤家⼀看就能懂,需要提醒的是⽐较相等⽤的是 == ,请注意这⾥是两个等号,因为 = 是赋值运算 符,我们在上⾯刚刚讲到过, == 才是⽐较相等的运算符;相信⼤家已经想到了,如果 and 左边的布尔值是 False ,不管右边的布尔值是 什么,最终的结果都是 False ,所以在做运算的时候右边的值会被跳过(短路处理),这也就意味着 在 and 运算符左边为 False 的情况下,右边的表达式根本不会执⾏。下⾯的例⼦为⼤家展示了算术运算符的使⽤。原创 2023-01-18 12:08:05 · 125 阅读 · 0 评论 -
第003课:Python语⾔元素之变量
⼆是将数据以⼆进制⽅式编码。按照玛雅⼈ 的历法,2012年是上⼀个所谓的“太阳纪”的最后⼀年,⽽2013年则是新的“太阳纪”的开始,后来这件事 情被以讹传讹的⽅式误传为”2012年是玛雅⼈预⾔的世界末⽇“的荒诞说法。因为Python语⾔简单优 雅,相⽐C、C++、Java这样的编程语⾔,Python对初学者更加友好,当然这并不是说Python不像其他 语⾔那样强⼤,Python⼏乎是⽆所不能的,在第⼀节课的时候,我们就说到了Python可以⽤于服务器 程序开发、云平台开发、数据分析、机器学习等各个领域。原创 2023-01-18 11:55:32 · 127 阅读 · 0 评论 -
第002课:第一个Python程序
如果你使⽤的是Windows操作系统,接下来可以在你保存代码的⽬录下先按 住键盘上的 shift 键再点击⿏标右键,这时候⿏标右键菜单中会出现“命令⾏提示符”选项,点击该选项 就可以打开“命令⾏提示符”⼯具,我们输⼊下⾯的命令。提醒:我们也可以在任意位置打开“命令⾏提示符”或“终端”⼯具,然后将需要执⾏的Python代码通 过拖拽的⽅式拖⼊到“命令⾏提示符”或“终端”中,这样相当于指定了⽂件的绝对路径来运⾏该⽂件 中的Python代码。简单的说,注释会让代码更容易看懂但不会影响程序的执⾏结果。原创 2023-01-17 10:36:29 · 101 阅读 · 0 评论 -
第001课:初识Python
需要注意的是,如果在Windows 7环境下安 装Python 3,需要先安装Service Pack 1补丁包,⼤家可以在Windows的“运⾏”中输⼊ winver 命令,从 弹出的窗⼝上可以看到你的系统是否安装了该补丁包。要⽤Python做开发,⾸先需要在⾃⼰的计算机上安装Python环境,上⾯我们为⼤家介绍了macOS和Windows两种环境下Python 3环境的安装⽅法,希望⼤家都能顺利的安装成功,以便开启我们后续的 学习。双击运⾏刚才下载的安装程序,会打开Python环境的安装向导。原创 2023-01-16 20:49:34 · 110 阅读 · 1 评论