暂无商品咨询信息 [发表商品咨询]
这是一本面向初学者的 Python 编程实用指南,用“讲故事 + 做项目”的方式带你走进Python 世界。
本书的前半部分(第 1~8 章)用浅显易懂的语言将 Python 基础知识、语法、数据结构等串起来,后半部分(第 9~24 章)则把这些概念直接投入真实场景,让 Python 程序替你批量整理文件夹、填报电子表格、抓取网页数据、生成 PDF 报告、定时发送邮件,甚至让计算机“开口说话”。本书的案例聚焦日常痛点,会先讲思路,再给代码,并在实践项目中分步骤拆解和演
示编程实践,非常有助于读者边学边上手。值得一提的是,本书还结合大语言模型(LLM)给出了一些更加巧妙的实践技巧。
无论你是想要轻松学习编程的入门级读者,还是想借助程序自动化处理事务的非专业人士,这本久经考验的 Python 教程都将是你不容错过的选择。
阿尔·斯维加特(Al Sweigart)软件开发人员、 美术师、Python软件基金会会士(fellow);著有多部适合初学者阅读的编程著作,其中包括Invent Your Own Computer Games with Python、The Big Book of Small Python Projects 和Beyond the Basic Stuff with Python(均由 No Starch 出版社出版);曾在多个PyCon大会上担任国际演讲嘉宾。
第 一部分 编程基础
第 1 章 Python 基础 3
1.1 在交互式环境中输入表达式 3
1.2 整型、浮点型和字符串数据类型 7
1.3 字符串的拼接和复制 8
1.4 在变量中存储值 9
1.4.1 赋值语句 9
1.4.2 变量名 10
1.5 编写第 一个程序 11
1.6 程序详解 13
1.6.1 注释 13
1.6.2 函数 print() 13
1.6.3 函数 input() 14
1.6.4 问候语 14
1.6.5 函数 len() 14
1.6.6 函数 str()、int() 和 float() 15
1.6.7 函数 type() 18
1.6.8 函数 round() 和 abs() 19
1.7 计算机如何使用二进制数存储数据 20
1.8 小结 22
第 2 章 if-else 和流程控制 23
2.1 布尔值 24
2.2 比较运算符 24
2.3 布尔运算符 26
2.4 混合使用布尔运算符和比较运算符 28
2.5 流程控制的组成部分 28
2.5.1 条件 29
2.5.2 代码块 29
2.5.3 程序执行 29
2.6 流程控制语句 30
2.6.1 if 语句 30
2.6.2 else 语句 31
2.6.3 elif 语句 32
2.7 小程序 1:反转日 36
2.8 小程序 2:不诚实的容量计算器 37
2.9 小结 39
第 3 章 循环 41
3.1 while 循环语句 41
3.1.1 一个恼人的 while 循环 43
3.1.2 break 语句 44
3.1.3 continue 语句 46
3.2 for 循环和函数 range() 49
3.2.1 等价的 while 循环 51
3.2.2 range() 的参数 51
3.3 导入模块 52
3.4 使用 sys.exit() 提前结束程序 53
3.5 小程序 3:猜数 54
3.6 小程序 4:剪刀、石头、布 56
3.7 小结 60
第 4 章 函数 61
4.1 创建函数 61
4.2 实参和形参 62
4.3 返回值和 return 语句 64
4.4 None 值 65
4.5 具名形参 65
4.6 调用栈 67
4.7 局部作用域和全局作用域 69
4.7.1 作用域规则 70
4.7.2 global 语句 72
4.7.3 确定变量是全局变量还是局部变量 73
4.8 异常处理 74
4.9 小程序 5:之字形运动 76
4.10 小程序 6:绘制尖峰 78
4.11 小结 80
第 5 章 调试 81
5.1 引发异常 81
5.2 断言 83
5.3 日志 84
5.3.1 logging 模块 84
5.3.2 日志文件 86
5.3.3 一种糟糕的做法:使用 print() 进行调试 86
5.3.4 日志等级 87
5.3.5 禁用日志 87
5.4 Mu 的调试器 88
5.4.1 调试一个执行加法运算的程序 89
5.4.2 设置断点 91
5.5 小结 92
第 6 章 列表 93
6.1 列表数据类型 93
6.1.1 索引 94
6.1.2 负数索引 95
6.1.3 切片 95
6.1.4 函数 len() 96
6.1.5 更新列表中的值 96
6.1.6 拼接和复制 97
6.1.7 del 语句 97
6.2 使用列表 97
6.2.1 for 循环与列表 99
6.2.2 运算符 in 和 not in 100
6.2.3 多重赋值技巧 100
6.2.4 列表元素枚举 101
6.2.5 随机选择和随机排序 101
6.3 增强赋值运算符 102
6.4 方法 103
6.4.1 查找值 103
6.4.2 添加值 104
6.4.3 删除值 105
6.4.4 对值进行排序 106
6.4.5 以相反的顺序排列值 107
6.5 短路的布尔运算符 108
6.6 小程序 7:列表版魔力八号球 109
6.7 序列数据类型 109
6.7.1 可变数据类型和不可变数据类型 110
6.7.2 元组数据类型 111
6.7.3 转换为列表和元组 112
6.8 引用 113
6.8.1 实参 114
6.8.2 函数 copy() 和 deepcopy() 115
6.9 小程序 8:黑客帝国屏保 116
6.10 小结 119
第 7 章 字典与数据结构化 121
7.1 字典数据类型 121
7.1.1 比较字典和列表 122
7.1.2 返回键和值 124
7.1.3 检查指定的键是否存在 125
7.1.4 设置默认值 126
7.2 使用数据结构对实物建模 127
7.3 项目 1:交互式国际象棋棋盘模拟器 129
7.3.1 第 1 步:初始化 130
7.3.2 第 2 步:创建棋盘模板 130
7.3.3 第 3 步:显示棋盘的当前状态 131
7.3.4 第 4 步:操作棋盘 133
7.4 嵌套的字典和列表 135
7.5 小结 136
第 8 章 字符串与文本编辑 137
8.1 使用字符串 137
8.1.1 字符串字面量 137
8.1.2 索引和切片 140
8.1.3 运算符 in 和 not in 141
8.2 f- 字符串 142
8.3 f- 字符串的替代方法:%s 和 format() 142
8.4 非常有用的字符串方法 143
8.4.1 修改大小写 143
8.4.2 检查字符串的特征 145
8.4.3 检查字符串的开头和结尾部分 147
8.4.4 字符串合并和拆分 147
8.4.5 文本对齐和居中 148
8.4.6 删除空白 149
8.5 字符的数值码点 150
8.6 复制并粘贴字符串 150
8.7 项目 2:在维基百科文章中添加项目符号 152
8.7.1 第 1 步:从剪贴板复制并粘贴 152
8.7.2 第 2 步:按行拆分文本 153
8.7.3 第 3 步:合并修改后的行 154
8.8 小程序 9:儿童黑话 154
8.9 小结 158
第二部分 任务自动化
第 9 章 使用正则表达式匹配文本模式 161
9.1 在不使用正则表达式的情况下查找文本模式 162
9.2 使用正则表达式查找文本模式 163
9.3 正则表达式语法 165
9.3.1 使用括号进行分组 165
9.3.2 使用转义字符 166
9.3.3 匹配可替代编组 166
9.3.4 返回所有的匹配内容 167
9.4 修饰符语法:要匹配什么字符 168
9.4.1 使用字符集和反向字符集 168
9.4.2 使用简写字符集 169
9.4.3 使用句点字符匹配任何字符 169
9.4.4 注意要匹配的字符是否正确 170
9.5 量词语法:匹配多少个修饰符 170
9.5.1 匹配可选模式 170
9.5.2 匹配零个或多个修饰符 171
9.5.3 匹配一个或多个修饰符 172
9.5.4 匹配指定数量的修饰符 172
9.6 贪婪匹配和非贪婪匹配 173
9.6.1 匹配任何内容 174
9.6.2 匹配换行符 175
9.7 在字符串开头和末尾查找匹配的内容 175
9.8 匹配时不区分大小写 177
9.9 替换字符串 178
9.10 使用详细模式管理复杂的正则表达式 178
9.11 组合使用 re.IGNORECASE、re.DOTALL和 re.VERBOSE 179
9.12 项目 3:从大型文档中提取联系人信息 179
9.12.1 第 1 步:创建用于匹配电话号码的正则表达式 180
9.12.2 第 2 步:创建用于匹配电子邮件地址的正则表达式 181
9.12.3 第 3 步:找出剪贴板文本中所有匹配的内容 182
9.12.4 第 4 步:将匹配的内容合并为单个字符串 182
9.12.5 文本模式识别的其他用途 183
9.13 Humre:一个用于提高正则表达式可读性的模块 184
9.14 小结 188
第 10 章 读写文件 189
10.1 文件和文件路径 189
10.1.1 标准化路径分隔符 190
10.1.2 合并路径 191
10.1.3 访问当前工作目录 192
10.1.4 访问主目录 193
10.1.5 指定绝对路径与相对路径 193
10.1.6 新建文件夹 194
10.1.7 处理绝对路径和相对路径 195
10.1.8 获取文件路径的组成部分 196
10.1.9 获取文件大小和时间戳 197
10.1.10 使用 glob 模式查找文件 198
10.1.11 检查路径是否有效 199
10.2 文件读写过程 200
10.2.1 打开文件 201
10.2.2 读取文件内容 202
10.2.3 写入文件 203
10.2.4 使用 with 语句 204
10.3 使用 shelve 模块保存变量 204
10.4 项目 4:生成随机的考卷文件 206
10.4.1 第 1 步:将测验数据存储在字典中 206
10.4.2 第 2 步:创建用于存储测验数据的文件 207
10.4.3 第 3 步:创建选项 208
10.4.4 第 4 步:将内容写入文件 209
10.5 小结 210
第 11 章 组织文件 213
11.1 shutil 模块 213
11.1.1 复制文件和文件夹 214
11.1.2 移动和重命名文件和文件夹 215
11.1.3 永久性删除文件和文件夹 215
11.1.4 移入回收站 216
11.2 遍历目录树 217
11.3 使用 zipfile 模块压缩文件 219
11.3.1 创建和添加到 ZIP 文件 219
11.3.2 读取 ZIP 文件 220
11.3.3 解压缩 ZIP 文件 221
11.4 项目 5:将文件夹备份到 ZIP 文件中 221
11.4.1 第 1 步:确定 ZIP 文件的名称 222
11.4.2 第 2 步:新建 ZIP 文件 223
11.4.3 第 3 步:遍历目录树 223
11.4.4 使用同样的技巧编写类似程序 224
11.5 小结 224
第 12 章 设计并部署命令行程序 227
12.1 程序的别名 227
12.2 使用终端 228
12.2.1 命令 cd、pwd、dir 和 ls 229
12.2.2 环境变量 PATH 230
12.2.3 编辑环境变量 PATH 231
12.2.4 命令 which 和 where 232
12.3 虚拟环境 232
12.4 使用 pip 安装 Python 包 234
12.5 有自我认知的 Python 程序 235
12.6 基于文本的程序设计 236
12.6.1 简短的命令名 237
12.6.2 命令行参数 238
12.6.3 剪贴板 I/O 238
12.6.4 使用 Bext 显示五颜六色的文本 239
12.6.5 清空终端窗口 240
12.6.6 声音和文本通知 240
12.7 小程序 10:暴风雪 241
12.8 使用 PyMsgBox 弹出消息框 243
12.9 部署 Python 程序 243
12.9.1 Windows 243
12.9.2 macOS 245
12.9.3 Ubuntu Linux 245
12.10 小程序 11:复制当前工作目录 247
12.10.1 Windows 248
12.10.2 macOS 248
12.10.3 Ubuntu Linux 249
12.11 小程序 12:剪贴板记录程序 249
12.11.1 Windows 251
12.11.2 macOS 252
12.11.3 Ubuntu Linux 252
12.12 使用 PyInstaller 编译 Python 程序 253
12.13 小结 254
第 13 章 Web 内容爬取 255
13.1 HTTP 和 HTTPS 255
13.2 项目 6:使用 webbrowser 模块运行程序 256
13.2.1 第 1 步:确定 URL 256
13.2.2 第 2 步:处理命令行参数 257
13.2.3 第 3 步:获取剪贴板中的内容 258
13.2.4 使用 webbrowser 模块编写类似程序 259
13.3 使用 requests 模块下载网络文件 259
13.3.1 下载网页 259
13.3.2 检查错误 260
13.3.3 将下载的文件保存到硬盘 261
13.4 访问天气 API 262
13.4.1 城市搜索 264
13.4.2 获取当前天气 265
13.4.3 获取天气预报 265
13.4.4 探索 API 265
13.5 理解 HTML 266
13.5.1 探索 HTML 格式 266
13.5.2 查看网页的源代码 266
13.5.3 打开浏览器的开发者工具 267
13.5.4 查找 HTML 元素 268
13.6 使用 Beautiful Soup 解析 HTML 270
13.6.1 创建 Beautiful Soup 对象 271
13.6.2 查找元素 271
13.6.3 获取元素属性中的数据 273
13.7 项目 7:打开所有搜索结果 274
13.7.1 第 1 步:获取搜索结果页面 274
13.7.2 第 2 步:查找所有搜索结果 275
13.7.3 第 3 步:在不同的浏览器选项卡中打开每个搜索结果 275
13.7.4 使用同样的技巧编写类似程序 276
13.8 项目 8:下载 XKCD 漫画 276
13.8.1 第 1 步:设计程序 277
13.8.2 第 2 步:下载网页 278
13.8.3 第 3 步:找到并下载漫画图像 279
13.8.4 第 4 步:保存图像并找到上一张漫画 280
13.8.5 用同样的技巧编写类似程序 281
13.9 使用 Selenium 控制浏览器 282
13.9.1 启动 Selenium 控制的浏览器 282
13.9.2 单击浏览器中的按钮 283
13.9.3 查找页面上的元素 283
13.9.4 单击页面上的元素 285
13.9.5 填写并提交表单 285
13.9.6 发送特殊键 286
13.10 使用 Playwright 控制浏览器 287
13.10.1 启动 Playwright 控制的浏览器 287
13.10.2 单击浏览器中的按钮 288
13.10.3 查找页面上的元素 288
13.10.4 单击页面上的元素 290
13.10.5 填写并提交表单 292
13.10.6 发送特殊键 292
13.11 小结 293
第 14 章 Excel 电子表格 295
14.1 读取 Excel 文件 296
14.1.1 打开工作簿 297
14.1.2 获取工作簿中的工作表 297
14.1.3 获取工作表中的单元格 297
14.1.4 在列的字母编号和数字编号之间进行转换 299
14.1.5 获取行和列 300
14.2 项目 9:收集人口普查统计数据 302
14.2.1 第 1 步:读取电子表格数据 302
14.2.2 第 2 步:填充数据结构 303
14.2.3 第 3 步:将结果写入文件 305
14.2.4 使用同样的技巧编写类似程序 305
14.3 写入 Excel 文档 306
14.3.1 创建并保存 Excel 文件 306
14.3.2 创建和删除工作表 307
14.3.3 在单元格中写入值 307
14.4 项目 10:更新电子表格 308
14.4.1 第 1 步:设计用于存储正确价格信息的数据结构 309
14.4.2 第 2 步:检查所有行并更正错误价格 310
14.4.3 使用同样的技巧编写类似程序 310
14.5 设置单元格的字体样式 310
14.6 公式 312
14.7 调整行和列 314
14.7.1 设置行高和列宽 314
14.7.2 合并和拆分单元格 315
14.7.3 冻结窗格 316
14.8 图表 317
14.9 小结 318
第 15 章 Google Sheets 319
15.1 准备工作 319
15.1.1 新建一个 Google Cloud 项目 320
15.1.2 启用 Google Sheets API 和 Google Drive API 320
15.1.3 配置 OAuth 许可界面 320
15.1.4 创建凭证 321
15.1.5 使用凭证文件登录 321
15.1.6 撤销凭证文件 322
15.2 Spreadsheet 对象 322
15.2.1 创建、上传和列出电子表格 323
15.2.2 访问电子表格的属性 324
15.2.3 下载和上传电子表格 325
15.2.4 删除电子表格 326
15.3 Sheet 对象 326
15.3.1 读写数据 327
15.3.2 创建、移动和删除工作表 332
15.3.3 复制工作表 333
15.4 Google Forms 334
15.5 项目 11:虚构的区块链加密货币骗局 334
15.5.1 第 1 步:审计区块链 335
15.5.2 第 2 步:实施交易 337
15.6 Google Sheets 配额 338
15.7 小结 338
第 16 章 SQLite 数据库 341
16.1 比较电子表格和数据库 341
16.2 比较 SQLite 和其他 SQL 数据库 344
16.3 创建数据库和表 344
16.3.1 连接到数据库 345
16.3.2 创建表 346
16.3.3 定义数据类型 346
16.3.4 列出表和列 347
16.4 数据库操作 CRUD 348
16.4.1 在数据库中插入数据 349
16.4.2 从数据库中读取数据 350
16.4.3 更新数据库中的数据 356
16.4.4 删除数据库中的数据 357
16.5 回滚事务 357
16.6 备份数据库 358
16.7 修改和删除表 359
16.8 使用外键连接多个表 360
16.9 内存数据库及其备份 362
16.10 复制数据库 363
16.11 SQLite 命令行工具 364
16.12 小结 365
第 17 章 PDF 文档和 Word文档 367
17.1 PDF 文档 367
17.1.1 提取文本 367
17.1.2 使用 AI 做后期处理 369
17.1.3 提取图像 370
17.1.4 使用既有 PDF 页面创建 PDF 文档 371
17.2 项目 12:将众多 PDF 文档中的部分页面合并为单个 PDF 文档 377
17.2.1 第 1 步:找出所有的 PDF 文件 378
17.2.2 第 2 步:打开每个 PDF 文件 379
17.2.3 第 3 步:保存结果 379
17.2.4 使用同样的技巧编写类似程序 380
17.3 Word 文档 380
17.3.1 读取 Word 文档 381
17.3.2 获取 .docx 文件中的所有文本 381
17.3.3 设置 Paragraph 和 Run 对象的样式 382
17.3.4 设置 Run 对象的属性 383
17.3.5 写入 Word 文档 385
17.3.6 添加标题 387
17.3.7 添加软换行符和换页符 388
17.3.8 添加图片 389
17.4 小结 389
第 18 章 CSV、JSON 和 XML文件 391
18.1 CSV 格式 391
18.1.1 读取 CSV 文件 392
18.1.2 使用 for 循环访问数据 393
18.1.3 写入 CSV 文件 394
18.1.4 将制表符(而不是逗号)用作分隔符 395
18.1.5 处理标题行 396
18.2 项目 13:删除 CSV 文件中的标题行 398
18.2.1 第 1 步:遍历每个文件 398
18.2.2 第 2 步:读取文件 399
18.2.3 第 3 步:写入新的 CSV 文件 400
18.2.4 使用同样的技巧编写类似程序 401
18.3 用途广泛的纯文本格式 401
18.3.1 JSON 402
18.3.2 XML 405
18.4 小结 411
第 19 章 记录时间、调度任务和启动程序 413
19.1 time 模块 413
19.1.1 返回 UNIX 纪元时间戳 413
19.1.2 让程序暂停 415
19.2 项目 14:超级秒表 415
19.2.1 第 1 步:为计时做准备 416
19.2.2 第 2 步:记录并显示每个阶段的时长 416
19.2.3 使用同样的技巧编写类似程序 417
19.3 datetime 模块 417
19.3.1 表示时间段 419
19.3.2 暂停到特定日期 420
19.3.3 将 datetime 对象转换为字符串 421
19.3.4 将字符串转换为 datetime 对象 422
19.4 在 Python 程序中启动其他程序 423
19.4.1 向进程传递命令行参数 426
19.4.2 接收来自外部命令的文本输出 426
19.4.3 运行任务调度器、launchd 和 cron 427
19.4.4 使用默认应用程序打开文件 427
19.5 项目 15:简单的倒计时程序 428
19.5.1 第 1 步:倒计时 428
19.5.2 第 2 步:播放音频文件 428
19.5.3 使用同样的技巧编写类似程序 429
19.6 小结 429
第 20 章 发送电子邮件、短信和通知 431
20.1 Gmail API 431
20.1.1 启用 Gmail API 432
20.1.2 发送邮件 432
20.1.3 读取邮件 433
20.1.4 搜索邮件 434
20.1.5 下载附件 435
20.2 SMS Email 网关 435
20.3 通知 437
20.3.1 发送通知 437
20.3.2 传输元数据 438
20.3.3 接收通知 438
20.4 小结 440
第 21 章 绘制图形和操作图像 441
21.1 计算机图像基础 441
21.1.1 颜色和 RGBA 值 441
21.1.2 坐标和矩形元组 443
21.2 使用 Pillow 操作图像 444
21.2.1 使用数据类型 Image 445
21.2.2 裁剪图像 446
21.2.3 将图像粘贴到其他图像中 447
21.2.4 调整图像大小 450
21.2.5 旋转和翻转图像 451
21.2.6 修改像素 453
21.3 项目 16:添加徽标 454
21.3.1 第 1 步:载入徽标图像 455
21.3.2 第 2 步:遍历所有的文件 456
21.3.3 第 3 步:调整图像大小 456
21.3.4 第 4 步:添加徽标并保存所做的修改 457
21.3.5 使用同样的技巧编写类似程序 459
21.4 在图像上绘画 459
21.4.1 形状 459
21.4.2 文本 461
21.5 使用剪贴板复制并粘贴图像 462
21.6 使用 Matplotlib 绘图 463
21.6.1 折线图和散点图 463
21.6.2 条形图和饼图 465
21.6.3 其他图表元素 467
21.7 小结 469
第 22 章 识别图像中的文本 471
22.1 安装 Tesseract 和 PyTesseract 471
22.1.1 Windows 471
22.1.2 macOS 472
22.1.3 Linux 472
22.1.4 安装 PyTesseract 472
22.2 OCR 基础知识 472
22.2.1 预处理图像 473
22.2.2 使用大语言模型更正错误 474
22.3 识别非英语文本 476
22.4 扫描器应用程序 NAPS2 477
22.4.1 安装并设置 NAPS2 477
22.4.2 在 Python 程序中运行 NAPS2 477
22.4.3 指定输入 478
22.5 小结 479
第 23 章 控制键盘和鼠标 481
23.1 在 macOS 系统中将程序设置为无障碍的 482
23.2 从故障中恢复 482
23.2.1 暂停和故障恢复措施 482
23.2.2 注销 482
23.3 控制鼠标移动 482
23.3.1 移动鼠标 484
23.3.2 获取鼠标的当前位置 484
23.4 控制鼠标交互 485
23.4.1 单击 485
23.4.2 拖曳 485
23.4.3 滚动 487
23.5 规划鼠标移动 488
23.6 截屏 489
23.7 图像识别 490
23.8 获取窗口信息 492
23.8.1 获取活动窗口 492
23.8.2 使用其他函数查找窗口 493
23.8.3 操作窗口 493
23.9 控制键盘 496
23.9.1 模拟按键操作 496
23.9.2 指定键名 497
23.9.3 按下和松开键盘键 498
23.9.4 模拟按快捷键 498
23.10 GUI 自动化脚本编写小贴士 499
23.11 显示消息框 500
23.12 小结 501
第 24 章 文本转语音引擎和语音识别引擎 503
24.1 文本转语音引擎 503
24.1.1 生成语音 504
24.1.2 将语音保存为 WAV 文件 505
24.2 语音识别 506
24.3 创建字幕文件 507
24.4 从网站下载视频 508
24.5 小结 511
附录 安装第三方包 513
1. 安装 pip 513
2. 查找 pip 513
3. 在虚拟环境中运行 pip 514
4. 安装本书用到的包 514
| 基本信息 | |
|---|---|
| 出版社 | 人民邮电出版社 |
| ISBN | 9787115684882 |
| 条码 | 9787115684882 |
| 编者 | 阿尔·斯维加特(Al Sweigart) 著 袁国忠 译 |
| 译者 | |
| 出版年月 | 2026-01-01 00:00:00.0 |
| 开本 | 其他 |
| 装帧 | 平装 |
| 页数 | 516 |
| 字数 | |
| 版次 | 3 |
| 印次 | 1 |
| 纸张 | |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]