目 录
第 1 章 Python 基础 1
1.1 习题 2
1.1.1 在交互式环境中输入表达式 2
1.1.2 整型、浮点型和字符串数据类型 3
1.1.3 字符串的拼接和复制 3
1.1.4 在变量中存储值 4
1.1.5 编写第 一个程序 5
1.1.6 计算机如何使用二进制数存储数据 6
1.2 实践项目 7
1.2.1 矩形打印程序 7
1.2.2 周长和面积计算器 7
第 2 章 If-Else 和流程控制 9
2.1 习题 10
2.1.1 布尔值 10
2.1.2 比较运算符 10
2.1.3 布尔运算符 11
2.1.4 流程控制的组成部分 11
2.1.5 流程控制语句 12
2.2 实践项目 13
2.2.1 修复安全温度程序 13
2.2.2 使用单个表达式检查温度是否在安全范围内 14
2.2.3 Fizz Buzz 编程挑战 14
第 3 章 循环 16
3.1 习题 17
3.1.1 while 循环语句 17
3.1.2 for 循环和 range() 函数 18
3.1.3 导入模块 20
3.1.4 使用 sys.exit() 提前结束程序 20
3.2 实践项目 21
3.2.1 松树打印程序 21
3.2.2 圣诞树打印程序 22
第 4 章 函数 23
4.1 习题 24
4.1.1 创建函数 24
4.1.2 实参和形参 24
4.1.3 返回值和 return 语句 25
4.1.4 None 值 25
4.1.5 调用栈 26
4.1.6 局部作用域和全局作用域 26
4.1.7 异常处理 28
4.2 实践项目 28
4.2.1 交易跟踪函数 28
4.2.2 不使用算术运算符的算术函数 29
4.2.3 计时函数 30
第 5 章 调试 31
5.1 习题 32
5.1.1 引发异常 32
5.1.2 断言 33
5.1.3 日志 33
5.1.4 Mu 的调试器 33
5.2 实践项目 34
5.2.1 有 bug 的平均分计算器 34
5.2.2 除零错误 35
5.2.3 闰年计算器 35
5.2.4 刻意编写存在 bug 的代码 36
第 6 章 列表 38
6.1 习题 39
6.1.1 列表数据类型 39
6.1.2 使用列表 39
6.1.3 增强赋值运算符 40
6.1.4 方法 40
6.1.5 短路求值 41
6.1.6 序列数据类型 42
6.1.7 引用 42
6.2 实践项目 43
6.2.1 全字母句子检测器 43
6.2.2 根据移动方向计算最终坐标 44
第 7 章 字典与数据结构化 45
7.1 习题 46
7.1.1 使用数据结构对实物建模 47
7.1.2 嵌套的字典和列表 47
7.2 实践项目 48
7.2.1 随机天气数据生成器 48
7.2.2 平均温度分析器 49
7.2.3 找出车能够吃到的棋子 49
第 8 章 字符串与文本编辑 51
8.1 习题 52
8.1.1 使用字符串 52
8.1.2 f- 字符串 53
8.1.3 非常有用的字符串方法 53
8.1.4 字符的数值码点 54
8.1.5 复制并粘贴字符串 54
8.2 实践项目 54
8.2.1 猜单词游戏 55
8.2.2 滚动文本动画 56
8.2.3 大小写交替变换 57
第 9 章 使用正则表达式匹配文本模式 58
9.1 习题 59
9.1.1 正则表达式语法 59
9.1.2 修饰符语法:要匹配什么字符 59
9.1.3 量词语法:匹配多少个修饰符 60
9.1.4 贪婪匹配和非贪婪匹配 60
9.1.5 在字符串开头和末尾查找匹配的内容 60
9.1.6 匹配时不区分大小写 61
9.1.7 替换字符串 61
9.1.8 使用详细模式管理复杂的正则表达式 61
9.1.9 Humre:一个用于提高正则表达式可读性的模块 62
9.2 实践项目 62
9.2.1 查找话题标签的正则表达式 62
9.2.2 查找价格的正则表达式 62
9.2.3 创建一个包含 PyCon 演讲者信息的 CSV 文件 63
9.2.4 可笑指数评估程序 64
9.2.5 单词扭曲器 65
第 10 章 读写文件 66
10.1 习题 67
10.1.1 文件和文件路径 67
10.1.2 文件读写过程 68
10.1.3 使用 shelve 模块保存变量 68
10.2 实践项目 69
10.2.1 文本文件合并函数 69
10.2.2 将之字形文本写入文件 69
10.2.3 能保存结果的剪刀、石头、布游戏 70
第 11 章 组织文件 71
11.1 习题 72
11.1.1 shutil 模块 72
11.1.2 遍历目录树 72
11.1.3 使用 zipfile 模块压缩文件 73
11.2 实践项目 73
11.2.1 同名文件查找程序 73
11.2.2 基于字母表创建文件夹 74
11.2.3 从 ZIP 文件中提取特定文件夹中的文件 75
第 12 章 设计并部署命令行程序 76
12.1 习题 77
12.1.1 程序的别名 77
12.1.2 使用终端 77
12.1.3 虚拟环境 78
12.1.4 使用 pip 安装 Python 包 78
12.1.5 有自我认知的 Python 程序 78
12.1.6 基于文本的程序设计 79
12.1.7 使用 PyMsgBox 弹出消息框 79
12.1.8 部署 Python 程序 80
12.1.9 使用 PyInstaller 编译 Python 程序 80
12.2 实践项目 81
12.2.1 使用 PyMsgBox 为猜数游戏创建对话框界面 81
12.2.2 使用 PyMsgBox 为定时器程序创建界面 81
12.2.3 编译定时器程序和猜数游戏 81
第 13 章 Web 内容爬取 82
13.1 习题 83
13.1.1 HTTP 和 HTTPS 83
13.1.2 使用 requests 模块下载网络文件 83
13.1.3 访问天气 API 83
13.1.4 理解 HTML 84
13.1.5 使用 Beautiful Soup 解析 HTML 84
13.1.6 使用 Selenium 控制浏览器 85
13.1.7 使用 Playwright 控制浏览器 86
13.2 实践项目 86
13.2.1 标题下载程序 86
13.2.2 图像下载程序 87
13.2.3 遍历网页链 87
13.2.4 HTML 国际象棋棋盘 88
第 14 章 Excel 电子表格 91
14.1 习题 92
14.1.1 读取 Excel 文件 92
14.1.2 写入 Excel 文件 92
14.1.3 设置单元格的字体样式 93
14.1.4 公式 93
14.1.5 调整行和列 94
14.1.6 图表 94
14.2 实践项目 95
14.2.1 在特定文件夹下所有的电子表格文件中搜索 95
14.2.2 使用 Excel 电子表格统计主文件夹中的文件 95
第 15 章 Google Sheets 97
15.1 习题 98
15.1.1 安装和设置 EZSheets 98
15.1.2 Spreadsheet 对象 98
15.1.3 Sheet 对象 99
15.1.4 Google Forms 99
15.1.5 Google Sheets 配额 99
15.2 实践项目 100
15.2.1 上传特定文件夹中所有的相关文件 100
15.2.2 使用 Google Sheets 统计主文件夹中的文件 100
第 16 章 SQLite 数据库 101
16.1 习题 102
16.1.1 比较电子表格和数据库 102
16.1.2 比较 SQLite 和其他 SQL 数据库 102
16.1.3 创建数据库和表 102
16.1.4 数据库操作 CRUD 103
16.1.5 回滚事务 104
16.1.6 备份数据库 104
16.1.7 修改和删除表 105
16.1.8 使用外键连接多个表 105
16.1.9 内存数据库及其备份 106
16.2 实践项目 106
16.2.1 监控可用磁盘空间 106
16.2.2 数据库转储工具 107
第 17 章 PDF 和 Word 文档 109
17.1 习题 110
17.1.1 PDF 文档处理 110
17.1.2 Word 文档处理 110
17.2 实践项目 111
17.2.1 计算 PDF 文档的字数 112
17.2.2 在特定文件夹下所有的 PDF 文档中查找 112
17.2.3 将猜数游戏的输出写入 Word 文档 112
17.2.4 将文本文件转换为 Word 文档 113
17.2.5 将 Word 文档中的单词设置为粗体 113
第 18 章 CSV、JSON 和 XML 文件 114
18.1 习题 115
18.1.1 CSV 格式 115
18.1.2 用途广泛的纯文本格式 116
18.2 实践项目 117
18.2.1 将 Fizz Buzz 程序的输出保存到 CSV 文件中 117
18.2.2 将猜数游戏的统计数据保存到 CSV 文件中 118
18.2.3 将猜数游戏的统计数据保存到 JSON 文件中 118
18.2.4 将猜数游戏的统计数据保存到 XML 文件中 119
第 19 章 记录时间、调度任务和启动程序 120
19.1 习题 121
19.1.1 time 模块 121
19.1.2 datetime 模块 121
19.1.3 在 Python 程序中启动其他程序 122
19.2 实践项目 123
19.2.1 用声音告警 123
19.2.2 图像打开程序 123
19.2.3 下一个节日告知程序 124
第 20 章 发送电子邮件、短信和通知 125
20.1 习题 126
20.1.1 Gmail API 126
20.1.2 SMS Email 网关 126
20.1.3 通知 127
20.2 实践项目 127
20.2.1 “每日金句”电子邮件 127
20.2.2 “每日金句”推送通知 128
第 21 章 绘制图形和操作图像 129
21.1 习题 130
21.1.1 计算机图像基础 130
21.1.2 使用 Pillow 操作图像 130
21.1.3 在图像上绘画 132
21.1.4 使用剪贴板复制并粘贴图像 132
21.1.5 使用 Matplotlib 绘图 133
21.2 实践项目 133
21.2.1 雪人图像生成程序 133
21.2.2 彩虹旗图像生成程序 134
21.2.3 剪贴板图像记录程序 134
第 22 章 识别图像中的文本 135
22.1 习题 136
22.1.1 安装 Tesseract 和 PyTesseract 136
22.1.2 OCR 基础知识 136
22.1.3 识别非英语文本 136
22.1.4 扫描器应用程序 NAPS2 137
22.2 实践项目 137
22.2.1 可搜索的 Web 漫画 137
22.2.2 改善文本提取效果 138
第 23 章 控制键盘和鼠标 139
23.1 习题 140
23.1.1 从故障中恢复 140
23.1.2 控制鼠标移动 140
23.1.3 控制鼠标交互 141
23.1.4 规划鼠标移动 141
23.1.5 截屏 142
23.1.6 图像识别 142
23.1.7 获取窗口信息 143
23.1.8 控制键盘 143
23.2 实践项目 143
23.2.1 模仿杰克逊·波洛克作画的机器人 144
23.2.2 鼠标移动记录程序 145
23.2.3 重放鼠标移动轨迹 145
第 24 章 文本转语音引擎和语音识别引擎 146
24.1 习题 147
24.1.1 文本转语音引擎 147
24.1.2 语音识别 147
24.1.3 创建字幕文件 148
24.1.4 从网站下载视频 148
24.2 实践项目 149
24.2.1 让计算机讲敲门笑话 149
24.2.2 让计算机唱歌 149
24.2.3 在播客中查找单词 150
答案 152
第 1 章 Python 基础 152
第 2 章 If-Else 和流程控制 156
第 3 章 循环 160
第 4 章 函数 163
第 5 章 调试 167
第 6 章 列表 170
第 7 章 字典与数据结构化 174
第 8 章 字符串与文本编辑 178
第 9 章 使用正则表达式匹配文本模式 182
第 10 章 读写文件 186
第 11 章 组织文件 190
第 12 章 设计并部署命令行程序 193
第 13 章 Web 内容爬取 197
第 14 章 Excel 电子表格 204
第 15 章 Google Sheets 208
第 16 章 SQLite 数据库 211
第 17 章 PDF 和 Word 文档 215
第 18 章 CSV、JSON 和 XML 文件 221
第 19 章 记录时间、调度任务和启动程序 226
第 20 章 发送电子邮件、短信和通知 230
第 21 章 绘制图形和操作图像 233
第 22 章 识别图像中的文本 239
第 23 章 控制键盘和鼠标 241
第 24 章 文本转语音引擎和语音识别引擎 245