首页>参考读物>计算机科学与技术>软件与程序设计

精通Python自动化编程
作者 : 黄永祥 编著
出版日期 : 2021-01-29
ISBN : 978-7-111-67182-4
定价 : 119.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 512
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书由一线Python开发工程师精心编写,循序渐进地介绍Python自动化编程的相关知识,全书共20章,第1~14章讲解Python编程基础知识,第15章介绍关系型数据库SQLite和MySQL、非关系型数据库MongoDB和Redis、ORM框架SQLAlchemy的应用,第16~20章分别介绍Selenium实现网页自动化、Requests实现网页爬虫编程、办公自动化编程、OpenCV实现图像识别与定位、Web系统的开发与部署。
本书理论与实践相结合,案例丰富,非常适合从零开始学习自动化编程的读者学习。

图书特色

n

图书前言

编程逐渐成为一项常见的专业技能,企业中很多工作都能用程序完成,从而将员工从重复枯燥的工作中释放出来。现在,中小学也开始将编程纳入教学中。
面对人人学编程的热潮,Python是众多编程语言的首选。它入门简单、使用广泛,不仅适用于人工智能、系统开发、网络爬虫领域,还广泛用在自动化测试、自动化运维和自动化办公开发中。本书主要针对Python初学者、测试工程师、运维工程师和办公自动化开发人员编写,讲述如何使用Python完成重复性的工作或任务,从而释放劳动力,提高工作效率。
本书是笔者使用Python编写自动化测试和自动化办公程序的经验总结,内容循序渐进,由浅入深,并结合了当前各种热门的新技术,希望对于正在使用Python编写自动化程序的人员有所帮助。
本书结构
本书循序渐进地介绍Python自动化编程的相关知识,20章内容划分如下:
第1~14章全面讲解Python编程基础知识,以非计算机专业的角度入门Python编程。
第15章讲解如何使用Python实现数据库操作。
第16~20章讲解自动化编程的相关技术,分别介绍了使用Selenium实现网页自动化、使用Requests实现网页爬虫编程、使用PyAutoGUI和PyWinAuto实现办公自动化编程、使用OpenCV实现图像识别与定位以及Flask Web框架在自动化系统开发中的运用。
本书特色
. 循序渐进,从零基础入手:本书从初学者必备的基础知识入手,循序渐进地介绍自动化程序开发和实现的各种知识。本书尤其适合没有接触过Python编程的读者使用。
. 实例丰富,由浅入深:本书每个知识点都配以实例进行讲解,力求让读者更容易地掌握知识要点。实例选择从易到难,包括网页自动化程序的编写、爬虫程序的编写、软硬件办公设备的自动化操作、Web自动化程序的开发等,并结合了笔者的实际开发经验,解决实际开发中遇到的各种问题。
. 注重实践,满足多岗位工作需求:本书根据编者多年从业经验编写,其中涉及的技术可适应多种岗位,比如爬虫工程师、运维人员、自动化测试人员,对于有兴趣通过编写程序提高办公效率的办公人员以及办公自动化Web开发人员都可以从本书中获益。
源代码下载
本书源代码可以登录机械工业出版社华章分社的网站(www.hzbook.com)下载,方法是搜索到本书,然后在页面上的“资源下载”模块下载即可。如果下载有问题,请发送电子邮件至booksaga@126.com。
读者对象
本书主要适合以下读者阅读:
. 从零开始学习自动化编程的初学者。
. 自动化测试工程师、运维工程师和网络爬虫工程师。
. 零基础的Python初学者以及自动化办公开发的从业人员。
笔者从事了多年的自动化编程工作,本书应该说是来自实践的经验心得,虽然力争完美,但限于水平,难免会存在错误,欢迎广大读者及业界专家不吝指正(读者可以加入QQ群93314951与笔者联系)。

黄永祥
2020年10月9日

上架指导

计算机\程序设计

封底文字

本书主要特点:
 围绕Python自动化编程技术展开讲解,从初学者必备的基础知识入手,系统地介绍了Python的基本语法、核心技术及自动化编程的方法与技巧,内容循序渐进,讲解由浅入深。

 每一个知识点都会配以实例进行讲解,力求让读者更容易地掌握知识要点。所有实例都经过了精心设计和挑选,涵盖了在实际开发中遇到的各种问题。

 在讲解的过程中,不仅介绍理论知识,而且安排了难度适中的项目实例,以使读者将理论应用到实践中,巩固相关知识,提高开发技能。

本书主要内容:
第1~14章全面讲解Python编程的基础知识。
第15章讲述如何使用Python实现数据库操作,分别介绍了SQLite、MySQL、MongoDB、Redis以及ORM框架SQLAlchemy。
第16~20章讲解自动化编程的相关技术,分别介绍了使用Selenium实现网页自动化、使用Requests实现网页爬虫编程、使用PyAutoGUI和PyWinAuto实现办公自动化编程、使用OpenCV实现图像识别与定位、使用Flask Web框架实现自动化系统开发。

本书适合的读者:
 从零开始学习Python编程的初学者。
 Python开发工程师、自动化测试工程师、自动化运维工程师、Python爬虫工程师。
 对Python自动化编程感兴趣的各类人员。

源代码下载:
本书所有代码及项目均在Python 3.8下测试通过,读者可从华章网站(www.hzbook.com)下载源代码进行上机练习。

图书目录

前言
第1章 构建开发环境 ..................................................... 1
1.1 Python的发展历程 ..................................................... 1
1.2 Python的应用场景 ..................................................... 2
1.3 安装Python ......... 3
1.3.1 在Windows下安装Python 3.8 ..................... 3
1.3.2 在Linux下安装Python 3.8 .......................... 6
1.4 PyCharm的安装与使用 ............................................. 7
1.4.1 安装PyCharm ................................................ 7
1.4.2 运行PyCharm ................................................ 9
1.4.3 创建项目 ...................................................... 10
1.4.4 编写并运行HelloWorld项目 ..................... 12
1.4.5 设置PyCharm开发环境 ............................. 13
1.5 实战项目:复读机 ................................................... 15
1.6 本章小结 ...................................... 17
第2章 基础语法 ............................ 18
2.1 关键字与标识符 ....................................................... 18
2.1.1 关键字 ............................. 18
2.1.2 标识符 ............................. 19
2.2 变量 .............................................. 21
2.2.1 变量的定义与使用 ...................................... 21
2.2.2 变量的深拷贝和浅拷贝 .............................. 23
2.3 运算符的使用 ... 26
2.3.1 算术运算符 .................................................. 26
2.3.2 比较运算符 .................................................. 27
2.3.3 赋值运算符 .................................................. 28
2.3.4 逻辑运算符 .................................................. 29
2.3.5 位运算符 ...................................................... 30
2.3.6 成员运算符 .................................................. 31
2.3.7 身份运算符 .................................................. 31
2.3.8 运算符的优先级 .......................................... 32
2.4 编码规范 ...................................... 33
2.4.1 代码注释 ...................................................... 33
2.4.2 模块与包 ...................................................... 34
2.4.3 编码缩进 ...................................................... 36
2.5 实战项目:猜数字游戏 ........................................... 37
2.6 本章小结 ...................................... 39
第3章 数据类型 ............................ 40
3.1 数字类型 ...................................... 40
3.1.1 整型数据的进制与转换 .............................. 40
3.1.2 浮点数的精度处理 ...................................... 43
3.1.3 布尔型数据的逻辑运算 .............................. 44
3.1.4 复数的使用与运算 ...................................... 45
3.2 字符串类型 ....... 45
3.2.1 定义与使用 ............................................................................. 46
3.2.2 格式化操作 .................................................. 48
3.2.3 使用运算符 .................................................. 52
3.2.4 大小写转换:capitalize() ............................ 53
3.2.5 大写转小写:lower() ................................... 54
3.2.6 小写转大写:upper() ................................... 55
3.2.7 大小写切换:swapcase() ............................. 56
3.2.8 查找索引:find() ......................................... 57
3.2.9 查找索引:index() ....................................... 57
3.2.10 序列拼接字符串:join()............................ 58
3.2.11 分隔字符串:split() ................................... 59
3.2.12 单个替换:replace() .................................. 60
3.2.13 类型检测:isalnum()、isalpha()和isdigit() ...................................................... 61
3.3 实战项目:客服热线 ............................................... 62
3.4 本章小结 ........... 64
第4章 元组和列表 ...................................................... 67
4.1 序列的操作 ....... 67
4.1.1 索引的正负值 .............................................. 67
4.1.2 元素截取操作 .............................................. 69
4.1.3 相加与相乘 .................................................. 71
4.1.4 检测元素是否存在 ...................................... 73
4.2 元组的操作 ....... 75
4.2.1 基本操作 ...................................................... 76
4.2.2 计算长度:len() ........................................... 77
4.2.3 最大值和最小值:max()和min() ............... 78
4.2.4 累加求和:sum() ......................................... 79
4.2.5 格式转换:tuple() ........................................ 79
4.2.6 查找索引:index() ....................................... 80
4.2.7 计算出现次数:count() ............................... 81
4.3 列表的操作 ....... 81
4.3.1 基本操作 ...................................................... 82
4.3.2 新增元素:append() .................................... 84
4.3.3 插入元素:insert() ....................................... 84
4.3.4 新增多个元素:extend() ............................. 85
4.3.5 移除元素:pop() .......................................... 86
4.3.6 移除元素:remove() .................................... 87
4.3.7 列表反转:reverse() .................................... 88
4.3.8 列表排序:sort()与sorted() ........................ 88
4.3.9 清空列表:clear() ........................................ 90
4.3.10 复制列表:copy() ...................................... 91
4.3.11 格式转换:list() ......................................... 92
4.4 实战项目:“营救村民”游戏 ............................... 93
4.5 本章小结 ........... 97
第5章 集合和字典 ...................................................... 99
5.1 集合的创建与操作 ................................................... 99
5.1.1 添加元素:add()和update() ...................... 100
5.1.2 删除元素:pop()、remove()和discard() .. 101
5.1.3 获取两个集合的交集:intersection() ....... 102
5.1.4 获取两个集合的并集:union() ................. 103
5.1.5 获取两个集合的差集:difference() .......... 104
5.1.6 判断子集:issubset()和issuperset() .......... 105
5.1.7 格式转换:set() ......................................... 106
5.2 字典的创建与操作 ................................................. 107
5.2.1 基本操作 .................................................... 107
5.2.2 获取键值:get()和setdefault() .................. 109
5.2.3 删除键值对:pop()和popitem() ............... 110
5.2.4 获取所有键:keys() .................................. 111
5.2.5 获取所有值:values() ............................... 112
5.2.6 获取所有键值:items() ............................. 112
5.2.7 更新字典:update() ................................... 113
5.2.8 格式转换:dict() ........................................ 113
5.3 实战项目:社交功能“好友推荐” ..................... 114
5.4 本章小结 .................................... 116
第6章 流程控制语句 ................................................ 117
6.1 条件判断 .................................... 117
6.1.1 if语句 . ......................................................117
6.1.2 if嵌套 ....................................................... 119
6.2 循环遍历 ......... 120
6.2.1 for循环 ....................................................... 120
6.2.2 while循环 .................................................. 122
6.2.3 终止循环:break ....................................... 123
6.2.4 跳过本次循环:continue ........................... 124
6.2.5 空语句:pass ............................................. 125
6.3 三目运算符 ................................ 126
6.4 推导式 ............. 127
6.5 实战项目:个人健康评测 ..................................... 130
6.6 本章小结 ......... 132
第7章 函数 .................................. 134
7.1 内置函数 ......... 134
7.2 自定义函数 ..... 137
7.3 函数参数 ......... 139
7.3.1 形参与实参 ................................................ 139
7.3.2 必选参数 .................................................... 140
7.3.3 默认参数 .................................................... 141
7.3.4 关键字参数 ................................................ 143
7.3.5 可变参数 .................................................... 144
7.3.6 设置数据类型 ............................................ 147
7.4 函数返回值 ................................ 148
7.5 函数调用过程 ....................................................... 150
7.6 变量的作用域 ....................................................... 151
7.7 递归函数 ......... 152
7.8 匿名函数 ......... 155
7.9 偏函数 ............. 157
7.10 实战项目:排序算法 ........................................... 158
7.10.1 冒泡排序 .................................................. 158
7.10.2 选择排序 .................................................. 159
7.10.3 插入排序 .................................................. 160
7.10.4 希尔排序 .................................................. 161
7.10.5 归并排序 .................................................. 162
7.11 本章小结 .................................. 163
第8章 面向对象编程 ................................................ 166
8.1 对象与类 .................................... 166
8.2 类的自定义与使用 ................................................. 167
8.2.1 类的定义 .................................................... 167
8.2.2 类的内置属性和方法 ................................ 168
8.2.3 静态方法、类方法和实例方法 ................ 170
8.2.4 类的property属性 ..................................... 172
8.2.5 类的实例化与使用 .................................... 173
8.2.6 动态添加类的属性和方法 ........................ 176
8.2.7 内置属性:__slots__ ................................. 178
8.3 类的封装 ......... 179
8.4 类的继承 ......... 180
8.5 内置函数:super() .................................................. 183
8.6 类的多态 ......... 186
8.7 动态创建类 ................................ 188
8.8 创建类的类:元类 ................................................. 189
8.9 实战项目:家庭游戏 ............................................. 191
8.10 本章小结 .................................. 194
第9章 高级特性 ....................................................... 196
9.1 迭代器 ............. 196
9.1.1 认识迭代器 ................................................ 196
9.1.2 自定义迭代器 ............................................ 198
9.1.3 迭代器的作用与扩展 ................................ 199
9.2 生成器 ............. 200
9.3 装饰器 ............. 202
9.3.1 无参数的函数装饰器 ................................ 202
9.3.2 带参数的函数装饰器 ................................ 206
9.3.3 使用类定义装饰器 .................................... 207
9.3.4 装饰器在类中的应用 ................................ 209
9.4 实战项目:工厂模式 ............................................. 210
9.5 本章小结 .................................... 211
第10章 异常机制 ..................................................... 212
10.1 异常的类型 .............................. 212
10.2 捕捉异常 .................................. 215
10.3 自定义异常 .............................. 217
10.4 异常的追踪术 ....................................................... 218
10.5 实战项目:狼人游戏 ........................................... 221
10.6 本章小结 .................................. 222
第11章 模块与包 ..................................................... 224
11.1 模块的导入与使用 ............................................... 224
11.2 包的导入与使用 ................................................... 225
11.3 导入方式from…import… .................................... 226
11.4 重命名模块与包 ................................................... 227
11.5 自定义模块与包 ................................................... 228
11.6 重新加载模块与包 ............................................... 228
11.7 动态添加模块与包 ............................................... 230
11.8 打包模块与包 ....................................................... 232
11.9 安装第三方模块与包 ........................................... 235
11.10 实战项目:可扩展的答题系统 ......................... 237
11.11 本章小结 ..... 238
第12章 日期与时间 .................................................. 240
12.1 日期与时间的类型 ............................................... 240
12.2 calendar模块 ............................ 243
12.3 time模块 .................................. 248
12.4 datetime模块 ...................................................... 250
12.5 实战项目:限时支付 ........................................... 261
12.6 本章小结 .................................. 262
第13章 文件处理 ..................................................... 264
13.1 使用os模块处理文件与目录 .............................. 264
13.2 使用open()读写TXT文件 .................................. 267
13.3 使用configparser读写配置文件 ......................... 270
13.4 使用csv读写CSV文件 ...................................... 273
13.5 使用xlrd和xlwt读写Excel文件 ....................... 275
13.6 使用python-docx读写Word文件 ...................... 278
13.7 实战项目:多文件读写功能 ............................... 280
13.8 本章小结 ....... 282
第14章 进程、线程与协程 ....................................... 285
14.1 为什么会有GIL .................................................... 285
14.2 进程、线程与协程的区别 ................................... 286
14.3 使用多线程 ... 287
14.3.1 使用线程 .................................................. 288
14.3.2 守护线程 .................................................. 289
14.3.3 等待线程结束 .......................................... 290
14.3.4 多线程共享全局变量 .............................. 291
14.3.5 互斥锁 ...................................................... 291
14.3.6 信号量 ...................................................... 292
14.3.7 线程事件 .................................................. 293
14.4 基于进程的并行 ................................................... 294
14.4.1 守护进程 .................................................. 295
14.4.2 等待进程结束 .......................................... 296
14.4.3 互斥锁 ...................................................... 297
14.4.4 通信和共享数据 ...................................... 297
14.4.5 信号量 ...................................................... 298
14.4.6 进程事件 .................................................. 299
14.4.7 进程池 ...................................................... 300
14.5 使用concurrent.futures执行并行任务 ................ 303
14.5.1 获取任务的执行结果 .............................. 304
14.5.2 设置回调函数 .......................................... 305
14.5.3 取消任务 .................................................. 306
14.5.4 处理异常 .................................................. 307
14.6 协程的应用 .............................. 308
14.6.1 yield与yield from .................................... 308
14.6.2 异步并发asyncio与async/await ............ 311
14.7 实战项目:生产者和消费者模式 ....................... 313
14.8 本章小结 .................................. 315
第15章 数据库编程 .................................................. 317
15.1 SQLite的应用 ....................................................... 317
15.1.1 连接并创建数据表 .................................. 318
15.1.2 新增数据 .................................................. 319
15.1.3 更新数据 .................................................. 319
15.1.4 删除数据 .................................................. 320
15.1.5 查询数据 .................................................. 321
15.2 MySQL的应用 ..................................................... 322
15.2.1 MySQL的安装与使用 ............................ 322
15.2.2 连接并创建数据表 .................................. 324
15.2.3 新增数据 .................................................. 325
15.2.4 更新数据 .................................................. 326
15.2.5 删除数据 .................................................. 327
15.2.6 查询数据 .................................................. 328
15.3 MongoDB的应用 ................................................. 329
15.3.1 MongoDB的安装与使用 ........................ 330
15.3.2 连接MongoDB ........................................ 332
15.3.3 新增文档 .................................................. 333
15.3.4 更新文档 .................................................. 335
15.3.5 删除文档 .................................................. 336
15.3.6 查询文档 .................................................. 337
15.4 Redis的应用 ............................ 340
15.4.1 Redis的安装与使用 ................................ 341
15.4.2 连接Redis ................................................ 342
15.4.3 新增数据 .................................................. 343
15.4.4 更新数据 .................................................. 345
15.4.5 删除数据 .................................................. 347
15.4.6 查询数据 .................................................. 349
15.5 ORM框架SQLAlchemy ...................................... 351
15.5.1 SQLAlchemy框架的概述与安装 ........... 352
15.5.2 连接数据库 .............................................. 352
15.5.3 创建数据表 .............................................. 354
15.5.4 新增数据 .................................................. 356
15.5.5 更新数据 .................................................. 357
15.5.6 删除数据 .................................................. 359
15.5.7 查询数据 .................................................. 360
15.6 实战项目:多数据库读写功能 ........................... 362
15.7 本章小结 .................................. 367
第16章 使用Selenium实现网页操作自动化 ........... 370
16.1 了解Selenium ....................................................... 370
16.2 安装Selenium ....................................................... 371
16.3 使用浏览器查找元素 ........................................... 374
16.4 使用Selenium定位元素 ...................................... 377
16.5 使用Selenium操控元素 ...................................... 380
16.6 Selenium常用功能 ............................................... 384
16.7 实战项目:百度登录与答题 ............................... 391
16.8 本章小结 .................................. 397
第17章 使用Requests实现自动爬取网页数据 ....... 398
17.1 分析网站接口 ....................................................... 398
17.2 Requests的安装 .................................................... 401
17.3 简单的请求方式 ................................................... 401
17.4 复杂的请求方式 ................................................... 403
17.5 文件下载与上传 ................................................... 406
17.6 实战项目:12306车次查询 ................................ 407
17.7 本章小结 .................................. 411
第18章 办公自动化编程........................................... 413
18.1 使用PyAutoGUI模拟人工操作 .......................... 413
18.1.1 PyAutoGUI概述及安装 .......................... 413
18.1.2 截图与识别 .............................................. 414
18.1.3 鼠标控制功能 .......................................... 417
18.1.4 键盘控制功能 .......................................... 418
18.1.5 消息框功能 .............................................. 420
18.1.6 实战项目:百度自动登录 ...................... 421
18.2 实现软件的自动化操作 ....................................... 424
18.2.1 PyWinAuto概述及安装 .......................... 424
18.2.2 查找软件信息 .......................................... 425
18.2.3 连接CS软件 ........................................... 428
18.2.4 基于uia的软件操控 ............................... 431
18.2.5 基于Win32的软件操控 ......................... 435
18.2.6 从源码剖析PyWinAuto .......................... 438
18.2.7 实战项目:自动撰写新闻稿 .................. 439
18.3 本章小结 .................................. 446
第19章 使用OpenCV实现图像识别与定位 ............ 449
19.1 OpenCV概述及安装 ............................................ 449
19.2 图像特征点检测算法 ........................................... 450
19.3 图像匹配与定位 ................................................... 454
19.4 实战项目:自动打印PDF文件 .......................... 459
19.5 本章小结 .................................. 464
第20章 自动化Web系统的开发与部署 ................... 466
20.1 用Flask快速实现一个网站 ................................. 466
20.1.1 概述与安装 .............................................. 466
20.1.2 快速实现一个简单的网站系统 .............. 467
20.1.3 路由编写规则 .......................................... 468
20.1.4 请求参数 .................................................. 469
20.1.5 响应过程 .................................................. 470
20.2 任务系统的开发与部署 ....................................... 472
20.2.1 系统设计概述 .......................................... 472
20.2.2 搭建开发环境 .......................................... 474
20.2.3 任务调度系统 .......................................... 477
20.2.4 任务执行系统 .......................................... 486
20.2.5 系统上线部署 .......................................... 490
20.3 本章小结 ....... 494

教学资源推荐
作者: [美] 罗伯特·W. 塞巴斯塔(Robert W. Sebesta) 著
作者: 郑阿奇,梁敬东 主编
作者: 顾治华 陈天煌 贺国平
作者: 许畅 陈嘉 朱晓瑞 编著
参考读物推荐
作者: [美]史蒂夫·霍夫曼(Steve Hoffman) 斯里纳特·佩雷拉(Srinath Perera)著