作者 |
黄永祥 |
丛书名 |
出版社 |
机械工业出版社 |
ISBN |
9787111671824 |
简要 |
简介 |
内容简介书籍计算机书籍 本书由一线Python开发工程师精心编写,循序渐进地介绍Python自动化编程的相关知识,全书共20章,第1~14章讲解Python编程基础知识,第15章介绍关系型数据库SQLite和MySQL、非关系型数据库MongoDB和Redis、ORM框架SQLAlchemy的应用,第16~20章分别介绍Selenium实现网页自动化、Requests实现网页爬虫编程、办公自动化编程、OpenCV实现图像识别与定位、Web系统的开发与部署。 本书理论与实践相结合,案例丰富,非常适合从零开始学习自动化编程的读者学习。 |
目录 |
前言 第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 |