
疯狂Python讲义 李刚 读书笔记
文章平均质量分 84
围绕外贸业务展开的学习,跳过了部分章节
Ailsa2019
这个作者很懒,什么都没留下…
展开
-
第20章 网络爬虫 Scrapy 案例
此案例未提交cookie,网站会自动跳转验证码页面,无法得到目标数据,仅理论上可行——只能用于无需登录、验证的网页# 创建项目CMD下,确定路径后,输入scrapy startproject ZhipinSpider改写item.pytitle = scrapy.Field()创建Spider模板CMD下,项目路径下,输入scrapy genspider job_position zhipin.com编写模板中的parse()方法——XPathfrom ZhipinSpider.items原创 2021-12-21 14:01:03 · 608 阅读 · 0 评论 -
第20章 网络爬虫 Scrapy
安装:pip install scrapy优点:在scrapy提供的模板的基础上改写部分代码,减少了自行编写的代码量缺点:要在CMD界面和python编辑界面间来回切换;无法提交cookie# 基本流程scrapy shell 调试(CMD界面)输入【scrapy shell 网址】或【scrapy shell -s USER_AGENT = ‘Mozilla/5.0’ 网址】确保response的代码为【200】,response的网址与请求网址一致在浏览器中查看请求头:F12——Ne原创 2021-12-21 14:00:32 · 787 阅读 · 0 评论 -
第19章 数据可视化
Matplotlib 2D绘图非内置库,要安装第三方包:pip install matplotlib【安装时间好长,包太大?】永久改变Matplotlib的默认字体(微软雅黑)。在Matplotlib配置文件【matplotlibrc】中,找到这行代码【#font.family: sans-serif】,改成【font.family: Microsoft YaHei】临时加载中文字体import matplotlib.font_managermy_font = FontPro原创 2021-12-21 14:00:03 · 360 阅读 · 0 评论 -
第17章 打包和发布 PyInstaller
zipapp(略)较复杂,且打包后的文件(.pyz)必须在python环境下运行,不推荐# PyInstaller生成可以跨平台运行的可执行程序缺点:没有图形用户界面的程序,无法看到输出结果。程序窗口一闪而过pip install pyinstaller 安装pyinstaller 选项 python文件选项简写全称作用-h–help帮助信息-F-onefile生成单个文件-D–onedir生成一个目录-a–ascii不支持Unico原创 2021-12-21 13:46:44 · 446 阅读 · 0 评论 -
第16章 文档和测试
用pydoc生成文档文档信息的分类与顺序模块的文档说明CLASSES:列出模块包含的所有类FUNCTIONS:列出模块包含的所有函数DATA:列出模块包含的所有类成员变量FILE:模块对应的源文件在控制台中操作python -m pydoc 模块名 #查看帮助文档,按空格键打开下一页python -m pydoc -w 模块名 #帮助文档生成HTML文件python -m pydoc -w 目录名 #目录下所有模块的帮助文档生成HTML文件python -m pydoc原创 2021-12-21 13:46:14 · 250 阅读 · 0 评论 -
第15章 网络编程
基础知识TCP/IP协议缩写全称协议类型IPInternet Protocol网络协议TCPTransmission Control Protocal传输控制协议IP地址含义:网络中,通信实体(可以是主机、打印机、路由器端口等)的唯一标识格式:32bit的整数,用圆点隔成4个8位的二进制数,转换成十进制数在0~255之间端口含义:应用程序与外界交流的出入口。不同程序,端口不同格式:16位的整数,0~65535,分成三类范围端口类型用途原创 2021-12-20 09:09:43 · 955 阅读 · 0 评论 -
第14章 并发编程
当前自编代码有时受网速限制,尚未受系统资源限制,暂时用不上并发编程概述同一CPU在某时间点只能执行一个程序,由于速度快,容易产生多个程序同时执行的错觉并发Concurrency多进程快速轮换并行Parallel同一时刻,多指令在多个处理器上同时执行进程的特征独立性。有独立的地址空间动态性。是活动中的指令集合(程序是静态的指令集合),有自己的生命周期、状态并发性。多个进程可以在同一处理器上并发执行,互不影响线程的特征同一进程下可以包含多个线程,各线程共享该原创 2021-12-20 09:09:08 · 399 阅读 · 0 评论 -
第13章 数据库编程
Python数据库API简介各数据库模块共有的全局变量apilevelAPI版本号,为2.0时,支持pythonthreadsafety 线程安全等级值0123含义线程不能共享共享模块,不共享连接线程完全安全paramstyle 参数风格formatpyformatqmarknumericnamedPython标准参数扩展的格式代码问号(:N)(:name)%s等%(name)【:2】:2个参数命名占位符原创 2021-12-20 09:08:33 · 263 阅读 · 0 评论 -
第12章 I_O 文件
python内置方法创建文件对象file = open(filename, [access_mode], [buffering])打开模式rwar+,w+,a+rb,wb,ab含义只读写入追加读+写二进制读/写备注清空原内容在文末用于视频、图片等注意:【r】模式下,文件必须存在;【w】【a】模式下,如果文件不存在,会自动新建buffering缓冲参数0 / False1 / True>1的整数负数原创 2021-12-20 09:07:57 · 275 阅读 · 0 评论 -
第12章 I_O 目录
OS库下,目录相关方法分类方法参数作用获取getcwd()无获取当前目录listdir()path返回目录下的所有文件和子目录创建mkdir()path创建目录(文件夹),已存在时报错makedirs()path递归创建目录(文件夹), 层层创建删除rmdir()path删除目录removedirs()path递归删除目录,层层删除改变chdir()path改变当前目录fchdir()fd改变原创 2021-12-20 08:59:22 · 171 阅读 · 0 评论 -
第11章 Tkinter Canvas
绘制几何图形方法create_linecreate_rectanglecreate_ovalcreate_arccreate_polygon图形直线矩形椭圆弧多边形坐标点起点 + 终点左上角 + 右下角所有点椭圆为同坐标点矩形的内切椭圆,弧为椭圆的一部分通用参数通用参数filloutlinewidthdashstipple含义填充颜色边框颜色边框宽度虚线边框用位图填充dash中,单个整数表示原创 2021-12-20 08:58:57 · 819 阅读 · 0 评论 -
第11章 Tkinter 常用组件
Entry 与 Text通用方法通用方法get()insert(index, content)delete(first, last=None)对内容的操作获取插入删除index“insert”“end”具体索引插入位置编辑处结尾处指定位置Entry的index为数字,表示第n个字符Text的index为行列号(row.column),1.0表示第1行第1列entry = Entry(win)entry.pack()ent原创 2021-12-20 08:58:01 · 3222 阅读 · 0 评论 -
第11章 Tkinter 概述
python自带的GUI(Graphics User Interface)库是tkinter,其它可选的其它GUI库有:PyGObject 支持GTK+3 图形界面工具集PyQt 支持Qt库,可跨Unix,Windows,Mac OS X平台使用wxPython 可跨Unix,Windows,Mac OS X平台使用,根据平台显示对应的风格# tkinter库中的类类继承的父类TkWm, MiscTopleveWm, BaseWidgetBaseWidget原创 2021-12-20 08:57:30 · 73969 阅读 · 0 评论 -
第10章 内置模块之正则表达式 re
特殊字符用于编译正则表达式的字符串中,部分字符、字符串会被赋予特殊的含义。若要恢复字符原义,可用【\】转义,每个【\】只能转义紧随其后的一个字符通配符【.】非\n\d\D\s\S\w\W数字非数字空白非空白单词非单词合法字符\t\n\r\f\a\e制表符换行符回车符换页符报警符Escape边界匹配符^$\A\Z\b\B行的开头行的结尾string开头string结尾单词边界非单词边界原创 2021-12-20 08:56:58 · 193 阅读 · 0 评论 -
第10章 内置模块之迭代器 itertools
迭代器通常用for遍历,用条件控制退出时机。无穷迭代器函数参数迭代内容repeat()elem, [n]某元素重复出现n次,n缺省时,重复无数次count()start, [step=1]step固定的整数cycle()seq序列的无限循环import itertoolsdef test(function): i = 0 for item in function: print(item, end=',')原创 2021-12-20 08:56:25 · 137 阅读 · 0 评论 -
第10章 内置模块
sys Python解释器模块下常用的函数作用exit()引发SystemExit异常来退出程序getfilesystemencoding()返回当前系统中保存文件所用的字符集getswitchinterval()返回线程切换的时间间隔setswitchinterval()设置线程切换的时间间隔modules返回模块名和载入模块对应关系的字典path指定查找模块的路径列表,修改此属性可以动态增加路径>>> import原创 2021-12-18 16:49:29 · 437 阅读 · 0 评论 -
第9章 模块和包
模块化编程模块就是python程序导入模块本质:将模块的全部代码加载到内存并执行,然后将整个模块内容赋值给与模块同名的变量。模块中的程序单元就是这个变量的成员。导入方法导入模块的所有成员:import 模块名 [as 别名]——调用成员时,要加模块名前缀导入模块内指定成员:from 模块名 import 成员名 [as 别名]——可直接调用成员导入模块内不以下划线开头的成员:from 模块名 import * ——可直接调用成员可用__all__变量指定可导入的模块成员:all原创 2021-12-18 16:48:58 · 223 阅读 · 0 评论 -
第8章 Python类的特殊方法
通过调用或重写python内置的方法,可以快捷地实现各种功能# 从object类继承的方法获取对象的基本信息要获取的信息方法名语法信息类型对象的自我描述repra.repr()字符串对象的所有方法名、属性名dir直接输出:a.dir()排序后输出:dir(a)列表对象的所有属性名、属性值dicta.dict字典对象具体属性的值dict[‘key’]a.dict[‘x’]valueclass A(): def __init_原创 2021-12-18 16:48:27 · 522 阅读 · 0 评论 -
第7章 异常处理
完整的异常处理流程try … except … else … finally … [raise]try后接except或finally,except可以有多个,finally只有一个代码块作用备注try业务代码try块应尽量简单,以便出现异常时快速定位到具体的行except捕获异常先处理小异常(子类),后处理大异常(父类)else向外传播try块无异常时,else块的代码放在try块下也一样finally回收资源回收try块打开的物理资源,如数据原创 2021-12-18 16:47:48 · 197 阅读 · 0 评论 -
第6章 类和对象
python支持面向对象的三大特征:封装、继承、多态——用途不明,暂且记录# 基本概念与操作名词name定义代码举例类class一批对象的抽象A人类对象(实例)object(instance)具体存在的实体A()人类与对象的关系:类的主要作用是重复创建具有相同特征的对象【类名()】创建类class 类名: #语法上,合法即可;可读性上,由单词连缀而成,首字母大写 "说明文档" 执行语句 #直接执行的命令 类变原创 2021-12-18 16:47:13 · 414 阅读 · 0 评论 -
第5章 函数与lambda表达式
函数:将一段代码定义为函数并指定函数名,方便调用lambda表达式:可作为表达式、函数参数、函数返回值,让程序更简洁5.1 函数入门定义函数要考虑的3个问题把动态变化的参数定义为函数的参数把希望得到的数据定义为返回值函数的内部实现过程def 函数名(形参列表): 执行语句... [return 返回值]def 内置关键字,用于定义函数,以便将程序的各功能划分到单独的函数中函数名:语法上,是合法的标识符即可;可读性上,应由小写单词用下划线连缀而成形参列表:有多个形式参原创 2021-12-18 16:46:39 · 644 阅读 · 0 评论 -
第4章 流程控制
缩进直接执行的语句不要缩进。缩进用于代码块,代码块以冒号为起点,用于流程控制,流程控制分为分支结构和循环结构python中,具有相同缩进的代码同属一个代码块,缩进后的代码才算条件执行体。一般缩进4个空格,其它数量亦可python程序总是从上向下依次执行冒号if语句if:分支结构,既可作语句,也可作表达式作语句时,【elif】可以有若干个。基本原则:把范围小的条件放在前面【if】语句中,除False本身为,None, 0, 空的字符串、元组、列表、字典都会被当作False处理pass 占位原创 2021-12-18 16:46:12 · 240 阅读 · 0 评论 -
第3章 列表、元组、字典
列表[ ]:按顺序存放元素,有索引,可修改元组( ):按顺序存放元素,有索引,不可修改字典{ }:以键值对存放数据,无索引,其中,key是不可变的字符串、range、列表、元组皆为序列类型【(’a’)】是字符串加括号,不是元组;【(‘a’,)】是只有一个元素的元组# 3.2 列表与元组的通用用法(不涉及修改元素)索引:正数从0开始,负数从-1开始——倒数第一个元素子序列 slice() [start : end : step]:含start,不含end;start, end可以是负数加原创 2021-12-18 16:44:36 · 543 阅读 · 0 评论 -
第2章 变量和简单类型
查看关键字、函数、帮助信息查看所有内置关键字:import keywordkeyword.kwlist查看内置函数下的内容(函数、方法、类、变量等),其中,以双下划线为首尾的为私有方法>>> dir(str)查看某方法的具体用法>>> help(str.title)2.1 注释常用于调试。单行:#;多行:3个单/双引号括起来。# 2.2 变量命名规则以字母(包括中日字符等)、下划线开头,由字母、下划线、数字组成,区分大小写注意:不能用内置的原创 2021-12-18 16:42:27 · 398 阅读 · 0 评论 -
第1章 Python语言概述和开发环境
Python发展史起源:1989年,出于娱乐目的,Guido van Rossum以ABC教学语言(非开放)为基础,结合C、C++、Java开发了Python发展:2008年12月,经过重大升级为Python 3.0,为甩掉历史包袱,不与2.x版本兼容当前:Java:开发客户端应用;C、C++:操作系统的硬件编程;Python:大数据、人工智能# Python语言类型解释性语言:一定要配解释器,要逐条解释,效率较慢,换平台时,换解释器即可。如Python编译型语言:直接编译成机器码,可脱离开发环原创 2021-12-18 16:39:33 · 458 阅读 · 0 评论