登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入   新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2025年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書

『簡體書』Python编程三剑客新版:Python编程从入门到实践第3版+快速上手第3版+极客项目编程第2版(套装共3册)

書城自編碼: 4180609
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: [美]埃里克·马瑟斯[Eric Matthes]
國際書號(ISBN): 9787115013217
出版社: 人民邮电出版社
出版日期:

頁數/字數: /

售價:HK$ 318.3

我要買

** 我創建的書架 **
未登入.



新書推薦:
爱的修复:伴侣咨询中的冲突、理解与接纳
《 爱的修复:伴侣咨询中的冲突、理解与接纳 》

售價:HK$ 76.8
新金融战:数字货币与大国博弈
《 新金融战:数字货币与大国博弈 》

售價:HK$ 96.8
亲爱的波伏瓦:跨越时空的女性对话
《 亲爱的波伏瓦:跨越时空的女性对话 》

售價:HK$ 74.8
替代式创新:关键核心技术突破的中国式路径
《 替代式创新:关键核心技术突破的中国式路径 》

售價:HK$ 97.9
阴郁之人的晴朗之地
《 阴郁之人的晴朗之地 》

售價:HK$ 68.2
金融陷阱
《 金融陷阱 》

售價:HK$ 75.9
豆包AI从会用到精通
《 豆包AI从会用到精通 》

售價:HK$ 63.8
HR必备法律工具书:企业用工风险防范实务操作与案例精解(第二版)
《 HR必备法律工具书:企业用工风险防范实务操作与案例精解(第二版) 》

售價:HK$ 118.8

編輯推薦:
《Python编程 从入门到实践 第3版》 编程入门就选蟒蛇书!
【经典】Python入门经典,常居Amazon等编程类图书TOP榜
【热销】热销全球,以12个语种发行,影响超过 250 万读者
【口碑】好评如潮,第2版豆瓣评分 9.2,Amazon 4.7 星评
【升级】代码基于Python3.11升级,涵盖语言新特性
【资源丰富】随书代码 + PPT课件 + 配套视频 + 速查手册
【自学利器】零基础书籍,自学轻松,附赠学习路线图
【品质提升】精雕细琢,邀请20位一线开发人员审读全书
学完蟒蛇书,你能打下坚实的编程基础、习得优秀的编程习惯,更会构建让自己终身受益的计算思维,而这也是AIGC时代与AI共生的基本技能。
《Python编程快速上手——让烦琐工作自动化(第3版)》 【第3版重磅升级】零基础友好,从小白到高手的全程护航
中文版销量35万+,百万级“蟒蛇书”作者埃里克·马瑟斯倾情作序推荐!
优质UP主@五里墩茶社 倾力审校 + 视频带练,精研夯基础,视频解难点,学习之路不孤单!
五大核心看点,直击痛点!
看点一:八大模块快速打好Python基础,从概
內容簡介:
9787115613639 Python编程 从入门到实践 第3版 109.80 9787115684882 Python编程快速上手——让烦琐工作自动化(第3版) 109.80 9787115642363 Python极客项目编程(第2版) 69.80 《Python编程 从入门到实践 第3版》 本书是享誉全球的Python入门书,影响了超过250万读者。全书分两部分:第一部分介绍用Python编程所必须了解的基本概念,包括强大的Python库和工具,以及列表、字典、if语句、类、文件和异常、代码测试等内容;第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的2D游戏、利用数据生成交互式的信息图以及创建和定制简单的Web应用,并帮助读者解决常见编程问题和困惑。第3版进行了全面修订:使用了文本编辑器VS Code,新增了介绍removeprefix()方法和removesuffix()方法的内容,并且在项目中利用了Matplotlib和Plotly的最新特性,等等。 《Python编程快速上手——让烦琐工作自动化(第3版)》 这是一本面向初学者的 Python 编程实用指南,用“讲故事 + 做项目”的方式带你走进Python 世界。
本书的前半部分(第 1~8 章)用浅显易懂的语言将 Python 基础知识、语法、数据结构等串起来,后半部分(第 9~24 章)则把这些概念直接投入真实场景,让 Python 程序替你批量整理文件夹、填报电子表格、抓取网页数据、生成 PDF 报告、定时发送邮件,甚至让计算机“开口说话”。本书的案例聚焦日常痛点,会先讲思路,再给代码,并在实践项目中分步骤拆解和演
示编程实践,非常有助于读者边学边上手。值得一提的是,本书还结合大语言模型(LLM)给出了一些更加巧妙的实践技巧。
无论你是想要轻松学习编程的入门级读者,还是想借助程序自动化处理事务的非专业人士,这本久经考验的 Python 教程都将是你不容错过的选择。 《Python极客项目编程(第2版)》 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,通过Python编程能够解决现实生活中的很多问题。本书并不介绍Python语言的基础知识,而是通过一系列有趣的项目,展示如何用Python解决各种实际问题,以及如何使用一些流行的Python库。
本书共15章,每章讲解一个有趣的Python项目,这些项目可以分成5个部分:第一部分是热身,包括科赫雪花、繁花曲线;第二部分是模拟生命,包括康威生命游戏、使用Karplus-Strong算法生成泛音、群体行为模拟;第三部分是好玩的图形,包括文本图形、照片马赛克、裸眼立体画;第四部分是走进三维,包括理解OpenGL、圆环面上的康威生命游戏、体渲染;第五部分是玩转硬件,包括在树莓派Pico上实现Karplus-Strong算法、树莓派激光音乐秀、物联网花园、树莓派音频机器学习。此外,本书还通过附录介绍如何安装Python和设置树莓派。
本书适合已经了解了基本的Python语法和编程知识、想要尝试和探索通过Python编程解决实际问题的读者阅读,也可作为Python初学者练习项目开发的参考用书。
關於作者:
《Python编程 从入门到实践 第3版》 埃里克·马瑟斯(Eric Matthes)
缔造技术图书销售奇迹的作家,作品影响了全球数百万读者。
致力于推动Python编程在全球的普及。执教计算机科学和数学25年,教学风格轻松有趣,深受学生喜爱。他对编程的热爱和丰厚的教学经验淋漓尽致地体现在了蟒蛇书《Python编程:从入门到编程》中。
蟒蛇书备受读者推崇。无论是熟练掌握其他编程语言的程序员,还是年仅10岁的萌新,都是本书的拥趸。本书在全球范围内被翻译为12种语言,累计热销超过250万册,其中仅中文版前两版的销量就超过了120万册。 《Python编程快速上手——让烦琐工作自动化(第3版)》 阿尔·斯维加特(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大会上担任国际演讲嘉宾。 《Python极客项目编程(第2版)》 马赫什·文基塔查拉姆(Mahesh Venkitachalam)是一名计算机图形学和嵌入式系统顾问,拥有二十余年从业经验。他是Electronut Labs的创始人,该公司以开发充满创意的开源硬件著称。他经常撰写有关编程和电子技术的博客。
目錄
《Python编程 从入门到实践 第3版》 第 一部分 基础知识
第 1章 起步 2
1.1 编程环境简介 2
1.1.1 Python版本 2
1.1.2 运行Python代码片段 2
1.1.3 编辑器VS Code简介 3
1.2 在各种操作系统中搭建Python编程
环境 3
1.2.1 在Windows系统中搭建Python编程环境 4
1.2.2 在macOS系统中搭建Python编程环境 5
1.2.3 在Linux系统中搭建Python
编程环境 6
1.3 运行Hello World程序 7
1.3.1 给VS Code安装Python扩展 7
1.3.2 运行程序hello_world.py 8
1.4 排除安装问题 8
1.5 从终端运行Python程序 9
1.5.1 在Windows系统中从终端
运行Python程序 9
1.5.2 在Linux和macOS系统中从
终端运行Python程序 10
1.6 小结 11
第 2章 变量和简单的数据类型 12
2.1 运行hello_world.py时发生的情况 12
2.2 变量 12
2.2.1 变量的命名和使用 13
2.2.2 如何在使用变量时避免命名
错误 14
2.2.3 变量是标签 15
2.3 字符串 16
2.3.1 使用方法修改字符串的大小写 16
2.3.2 在字符串中使用变量 17
2.3.3 使用制表符或换行符来添加
空白 18
2.3.4 删除空白 18
2.3.5 删除前缀 20
2.3.6 如何在使用字符串时避免语法错误 20
2.4 数 22
2.4.1 整数 22
2.4.2 浮点数 23
2.4.3 整数和浮点数 23
2.4.4 数中的下划线 24
2.4.5 同时给多个变量赋值 24
2.4.6 常量 24
2.5 注释 25
2.5.1 如何编写注释 25
2.5.2 该编写什么样的注释 25
2.6 Python之禅 26
2.7 小结 27
第3章 列表简介 28
3.1 列表是什么 28
3.1.1 访问列表元素 28
3.1.2 索引从0而不是1开始 29
3.1.3 使用列表中的各个值 30
3.2 修改、添加和删除元素 30
3.2.1 修改列表元素 31
3.2.2 在列表中添加元素 31
3.2.3 从列表中删除元素 32
3.3 管理列表 37
3.3.1 使用sort()方法对列表进行永久排序 37
3.3.2 使用sorted()函数对列表进行临时排序 37
3.3.3 反向打印列表 38
3.3.4 确定列表的长度 39
3.4 使用列表时避免索引错误 40
3.5 小结 41
第4章 操作列表 42
4.1 遍历整个列表 42
4.1.1 深入研究循环 43
4.1.2 在for循环中执行更多的操作 44
4.1.3 在for循环结束后执行一些
操作 45
4.2 避免缩进错误 45
4.2.1 忘记缩进 46
4.2.2 忘记缩进额外的代码行 46
4.2.3 不必要的缩进 47
4.2.4 循环后不必要的缩进 47
4.2.5 遗漏冒号 48
4.3 创建数值列表 49
4.3.1 使用range()函数 49
4.3.2 使用range()创建数值列表 50
4.3.3 对数值列表执行简单的统计
计算 51
4.3.4 列表推导式 52
4.4 使用列表的一部分 53
4.4.1 切片 53
4.4.2 遍历切片 54
4.4.3 复制列表 55
4.5 元组 57
4.5.1 定义元组 58
4.5.2 遍历元组中的所有值 58
4.5.3 修改元组变量 59
4.6 设置代码格式 60
4.6.1 格式设置指南 60
4.6.2 缩进 60
4.6.3 行长 61
4.6.4 空行 61
4.6.5 其他格式设置指南 61
4.7 小结 62
第5章 if语句 63
5.1 一个简单的示例 63
5.2 条件测试 64
5.2.1 检查是否相等 64
5.2.2 如何在检查是否相等时忽略
大小写 64
5.2.3 检查是否不等 65
5.2.4 数值比较 66
5.2.5 检查多个条件 66
5.2.6 检查特定的值是否在列表中 67
5.2.7 检查特定的值是否不在列表中 68
5.2.8 布尔表达式 68
5.3 if语句 69
5.3.1 简单的if语句 69
5.3.2 if-else语句 70
5.3.3 if-elif-else语句 71
5.3.4 使用多个elif代码块 72
5.3.5 省略else代码块 73
5.3.6 测试多个条件 73
5.4 使用if语句处理列表 76
5.4.1 检查特殊元素 76
5.4.2 确定列表非空 77
5.4.3 使用多个列表 77
5.5 设置if语句的格式 79
5.6 小结 80
第6章 字典 81
6.1 一个简单的字典 81
6.2 使用字典 82
6.2.1 访问字典中的值 82
6.2.2 添加键值对 83
6.2.3 从创建一个空字典开始 83
6.2.4 修改字典中的值 84
6.2.5 删除键值对 85
6.2.6 由类似的对象组成的字典 86
6.2.7 使用get()来访问值 87
6.3 遍历字典 88
6.3.1 遍历所有的键值对 88
6.3.2 遍历字典中的所有键 90
6.3.3 按特定的顺序遍历字典中的
所有键 92
6.3.4 遍历字典中的所有值 92
6.4 嵌套 94
6.4.1 字典列表 94
6.4.2 在字典中存储列表 97
6.4.3 在字典中存储字典 98
6.5 小结 100
第7章 用户输入和while循环 101
7.1 input()函数的工作原理 101
7.1.1 编写清晰的提示 102
7.1.2 使用int()来获取数值输入 103
7.1.3 求模运算符 104
7.2 while循环简介 105
7.2.1 使用while循环 105
7.2.2 让用户选择何时退出 106
7.2.3 使用标志 107
7.2.4 使用break退出循环 108
7.2.5 在循环中使用continue 109
7.2.6 避免无限循环 110
7.3 使用while循环处理列表和字典 111
7.3.1 在列表之间移动元素 111
7.3.2 删除为特定值的所有列表
元素 112
7.3.3 使用用户输入填充字典 113
7.4 小结 114
第8章 函数 115
8.1 定义函数 115
8.1.1 向函数传递信息 116
8.1.2 实参和形参 116
8.2 传递实参 117
8.2.1 位置实参 117
8.2.2 关键字实参 119
8.2.3 默认值 119
8.2.4 等效的函数调用 120
8.2.5 避免实参错误 121
8.3 返回值 122
8.3.1 返回简单的值 122
8.3.2 让实参变成可选的 123
8.3.3 返回字典 124
8.3.4 结合使用函数和while循环 125
8.4 传递列表 127
8.4.1 在函数中修改列表 128
8.4.2 禁止函数修改列表 130
8.5 传递任意数量的实参 131
8.5.1 结合使用位置实参和任意数量的实参 132
8.5.2 使用任意数量的关键字实参 133
8.6 将函数存储在模块中 134
8.6.1 导入整个模块 134
8.6.2 导入特定的函数 135
8.6.3 使用as给函数指定别名 136
8.6.4 使用as给模块指定别名 136
8.6.5 导入模块中的所有函数 137
8.7 函数编写指南 137
8.8 小结 139
第9章 类 140
9.1 创建和使用类 140
9.1.1 创建Dog类 141
9.1.2 根据类创建实例 142
9.2 使用类和实例 144
9.2.1 Car类 144
9.2.2 给属性指定默认值 145
9.2.3 修改属性的值 146
9.3 继承 149
9.3.1 子类的__init__()方法 149
9.3.2 给子类定义属性和方法 151
9.3.3 重写父类中的方法 152
9.3.4 将实例用作属性 152
9.3.5 模拟实物 154
9.4 导入类 155
9.4.1 导入单个类 155
9.4.2 在一个模块中存储多个类 157
9.4.3 从一个模块中导入多个类 158
9.4.4 导入整个模块 158
9.4.5 导入模块中的所有类 159
9.4.6 在一个模块中导入另一个
模块 159
9.4.7 使用别名 160
9.4.8 找到合适的工作流程 161
9.5 Python标准库 161
9.6 类的编程风格 162
9.7 小结 163
第 10章 文件和异常 164
10.1 读取文件 164
10.1.1 读取文件的全部内容 164
10.1.2 相对文件路径和绝对文件
路径 166
10.1.3 访问文件中的各行 167
10.1.4 使用文件的内容 168
10.1.5 包含100万位的大型文件 169
10.1.6 圆周率值中包含你的
生日吗 169
10.2 写入文件 170
10.2.1 写入一行 171
10.2.2 写入多行 171
10.3 异常 172
10.3.1 处理ZeroDivisionError
异常 172
10.3.2 使用try-except代码块 173
10.3.3 使用异常避免崩溃 173
10.3.4 else代码块 174
10.3.5 处理FileNotFoundError
异常 175
10.3.6 分析文本 177
10.3.7 使用多个文件 177
10.3.8 静默失败 179
10.3.9 决定报告哪些错误 179
10.4 存储数据 181
10.4.1 使用json.dumps()和json.loads() 181
10.4.2 保存和读取用户生成的
数据 182
10.4.3 重构 184
10.5 小结 186
第 11章 测试代码 187
11.1 使用pip安装pytest 187
11.1.1 更新pip 188
11.1.2 安装pytest 188
11.2 测试函数 189
11.2.1 单元测试和测试用例 190
11.2.2 可通过的测试 190
11.2.3 运行测试 191
11.2.4 未通过的测试 191
11.2.5 在测试未通过时怎么办 192
11.2.6 添加新测试 193
11.3 测试类 195
11.3.1 各种断言 195
11.3.2 一个要测试的类 195
11.3.3 测试AnonymousSurvey类 197
11.3.4 使用夹具 198
11.4 小结 200
第二部分 项  目
项目1 外星人入侵 202
第 12章 武装飞船 203
12.1 规划项目 203
12.2 安装Pygame 204
12.3 开始游戏项目 204
12.3.1 创建Pygame窗口及响应用户输入 204
12.3.2 控制帧率 206
12.3.3 设置背景色 207
12.3.4 创建Settings类 207
12.4 添加飞船图像 208
12.4.1 创建Ship类 209
12.4.2 在屏幕上绘制飞船 211
12.5 重构:_check_events()方法和_update_screen()方法 212
12.5.1 _check_events()方法 212
12.5.2 _update_screen()方法 213
12.6 驾驶飞船 214
12.6.1 响应按键 214
12.6.2 允许持续移动 214
12.6.3 左右移动 216
12.6.4 调整飞船的速度 217
12.6.5 限制飞船的活动范围 218
12.6.6 重构_check_events() 219
12.6.7 按Q键退出 220
12.6.8 在全屏模式下运行游戏 220
12.7 简单回顾 221
12.7.1 alien_invasion.py 221
12.7.2 settings.py 221
12.7.3 ship.py 221
12.8 射击 222
12.8.1 添加子弹设置 222
12.8.2 创建Bullet类 222
12.8.3 将子弹存储到编组中 223
12.8.4 开火 224
12.8.5 删除已消失的子弹 226
12.8.6 限制子弹数量 226
12.8.7 创建_update_bullets()
方法 227
12.9 小结 228
第 13章 外星人 229
13.1 项目回顾 229
13.2 创建第 一个外星人 230
13.2.1 创建Alien类 230
13.2.2 创建Alien实例 231
13.3 创建外星舰队 232
13.3.1 创建一行外星人 232
13.3.2 重构_create_fleet() 234
13.3.3 添加多行外星人 235
13.4 让外星舰队移动 237
13.4.1 向右移动外星舰队 237
13.4.2 创建表示外星舰队移动方向的设置 238
13.4.3 检查外星人是否到达了屏幕边缘 239
13.4.4 向下移动外星舰队并改变移动方向 239
13.5 击落外星人 240
13.5.1 检测子弹和外星人的碰撞 240
13.5.2 为测试创建大子弹 242
13.5.3 生成新的外星舰队 242
13.5.4 加快子弹的速度 243
13.5.5 重构_update_bullets() 243
13.6 结束游戏 244
13.6.1 检测外星人和飞船的碰撞 244
13.6.2 响应外星人和飞船的碰撞 245
13.6.3 有外星人到达屏幕下边缘 247
13.6.4 游戏结束 248
13.7 确定应运行游戏的哪些部分 249
13.8 小结 249
第 14章 记分 250
14.1 添加Play按钮 250
14.1.1 创建Button类 250
14.1.2 在屏幕上绘制按钮 252
14.1.3 开始游戏 253
14.1.4 重置游戏 254
14.1.5 将Play按钮切换到非活动
状态 254
14.1.6 隐藏光标 255
14.2 提高难度 256
14.2.1 修改速度设置 256
14.2.2 重置速度 258
14.3 记分 258
14.3.1 显示得分 259
14.3.2 创建记分牌 260
14.3.3 在外星人被击落时更新
得分 261
14.3.4 重置得分 262
14.3.5 将每个被击落的外星人都
计入得分 262
14.3.6 提高分数 263
14.3.7 对得分进行舍入 264
14.3.8 最高分 265
14.3.9 显示等级 267
14.3.10 显示余下的飞船数 269
14.4 小结 272
项目2 数据可视化 273
第 15章 生成数据 274
15.1 安装Matplotlib 274
15.2 绘制简单的折线图 275
15.2.1 修改标签文字和线条粗细 276
15.2.2 校正绘图 277
15.2.3 使用内置样式 278
15.2.4 使用scatter()绘制散点图
并设置样式 279
15.2.5 使用scatter()绘制一系
列点 280
15.2.6 自动计算数据 281
15.2.7 定制刻度标记 282
15.2.8 定制颜色 282
15.2.9 使用颜色映射 283
15.2.10 自动保存绘图 284
15.3 随机游走 284
15.3.1 创建RandomWalk类 284
15.3.2 选择方向 285
15.3.3 绘制随机游走图 286
15.3.4 模拟多次随机游走 287
15.3.5 设置随机游走图的样式 287
15.4 使用Plotly模拟掷骰子 292
15.4.1 安装Plotly 292
15.4.2 创建Die类 292
15.4.3 掷骰子 293
15.4.4 分析结果 293
15.4.5 绘制直方图 294
15.4.6 定制绘图 295
15.4.7 同时掷两个骰子 296
15.4.8 进一步定制 298
15.4.9 同时掷两个面数不同的
骰子 298
15.4.10 保存绘图 299
15.5 小结 300
第 16章 下载数据 301
16.1 CSV文件格式 301
16.1.1 解析CSV文件头 302
16.1.2 打印文件头及其位置 302
16.1.3 提取并读取数据 303
16.1.4 绘制温度图 304
16.1.5 datetime模块 305
16.1.6 在图中添加日期 306
16.1.7 涵盖更长的时间 307
16.1.8 再绘制一个数据系列 308
16.1.9 给图中区域着色 309
16.1.10 错误检查 310
16.2 制作全球地震散点图:GeoJSON
格式 313
16.2.1 地震数据 313
16.2.2 查看GeoJSON数据 313
16.2.3 创建地震列表 316
16.2.4 提取震级 316
16.2.5 提取位置数据 317
16.2.6 绘制地震散点图 318
16.2.7 指定数据的另一种方式 319
16.2.8 定制标记的尺寸 320
16.2.9 定制标记的颜色 321
16.2.10 其他渐变 323
16.2.11 添加悬停文本 323
16.3 小结 325
第 17章 使用API 326
17.1 使用API 326
17.1.1 Git和GitHub 326
17.1.2 使用API调用请求数据 327
17.1.3 安装Requests 327
17.1.4 处理API响应 328
17.1.5 处理响应字典 329
17.1.6 概述最受欢迎的仓库 331
17.1.7 监控API的速率限制 332
17.2 使用Plotly可视化仓库 332
17.2.1 设置图形的样式 334
17.2.2 添加定制工具提示 335
17.2.3 添加可单击的链接 336
17.2.4 定制标记颜色 337
17.2.5 深入了解Plotly和GitHub
API 338
17.3 Hacker News API 338
17.4 小结 341
项目3 Web应用程序 342
第 18章 Django入门 343
18.1 建立项目 343
18.1.1 制定规范 343
18.1.2 建立虚拟环境 344
18.1.3 激活虚拟环境 344
18.1.4 安装Django 345
18.1.5 在Django中创建项目 345
18.1.6 创建数据库 346
18.1.7 查看项目 346
18.2 创建应用程序 348
18.2.1 定义模型 349
18.2.2 激活模型 350
18.2.3 Django管理网站 351
18.2.4 定义模型Entry 353
18.2.5 迁移模型Entry 354
18.2.6 向管理网站注册Entry 354
18.2.7 Django shell 355
18.3 创建网页:学习笔记主页 357
18.3.1 映射URL 357
18.3.2 编写视图 359
18.3.3 编写模板 360
18.4 创建其他网页 361
18.4.1 模板继承 361
18.4.2 显示所有主题的页面 363
18.4.3 显示特定主题的页面 366
18.5 小结 369
第 19章 用户账户 370
19.1 让用户能够输入数据 370
19.1.1 添加新主题 370
19.1.2 添加新条目 374
19.1.3 编辑条目 378
19.2 创建用户账户 381
19.2.1 应用程序accounts 381
19.2.2 将应用程序accounts添加
到settings.py中 381
19.2.3 包含应用程序accounts的URL 382
19.2.4 登录页面 382
19.2.5 注销 385
19.2.6 注册页面 386
19.3 让用户拥有自己的数据 389
19.3.1 使用@login_required限制
访问 389
19.3.2 将数据关联到用户 391
19.3.3 只允许用户访问自己的
主题 393
19.3.4 保护用户的主题 394
19.3.5 保护页面edit_entry 394
19.3.6 将新主题关联到当前用户 395
19.4 小结 396
第 20章 设置应用程序的样式并部署 397
20.1 设置项目“学习笔记”的样式 397
20.1.1 应用程序django-bootstrap5 397
20.1.2 使用Bootstrap设置项目
“学习笔记”的样式 398
20.1.3 修改base.html 399
20.1.4 使用jumbotron设置主页的样式 404
20.1.5 设置登录页面的样式 405
20.1.6 设置页面topics的样式 406
20.1.7 设置页面topic中条目的
样式 407
20.2 部署“学习笔记” 409
20.2.1 注册Platform.sh账户 409
20.2.2 安装Platform.sh CLI 409
20.2.3 安装platformshconfig 410
20.2.4 创建文件requirements.txt 410
20.2.5 其他部署需求 411
20.2.6 添加配置文件 411
20.2.7 为部署到Platform.sh而
修改settings.py 414
20.2.8 使用Git跟踪项目文件 415
20.2.9 在Platform.sh上创建项目 417
20.2.10 推送到Platform.sh 418
20.2.11 查看线上项目 419
20.2.12 改进Platform.sh部署 420
20.2.13 创建定制错误页面 422
20.2.14 继续开发 423
20.2.15 将项目从Platform.sh上
删除 424
20.3 小结 425
附录A 安装及故障排除 426
附录B 文本编辑器和IDE 430
附录C 寻求帮助 436
附录D 使用Git进行版本控制 440
附录E 部署故障排除 449
《Python编程快速上手——让烦琐工作自动化(第3版)》 第 一部分 编程基础
第 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

《Python极客项目编程(第2版)》 第 一部分 热身
第 1 章 科赫雪花 2
1.1 工作原理 2
1.1.1 使用递归 2
1.1.2 构建科赫雪花 3
1.1.3 使用海龟绘图法绘图 6
1.2 需求 8
1.3 代码 8
1.3.1 计算点的坐标 8
1.3.2 递归 8
1.3.3 绘制片段 9
1.3.4 编写函数 main() 9
1.4 运行程序 10
1.5 小结 10
1.6 实验 11
1.7 完整代码 11
第 2 章 繁花曲线 13
2.1 工作原理 13
2.1.1 理解参数方程 13
2.1.2 使用海龟绘图法绘制曲线 15
2.2 需求 16
2.3 代码 17
2.3.1 绘制繁花曲线 17
2.3.2 协调动画 20
2.3.3 保存曲线 22
2.3.4 分析命令行参数及初始化 23
2.4 运行程序 24
2.5 小结 25
2.6 实验 26
2.7 完整代码 26
第二部分 模拟生命
第 3 章 康威生命游戏 32
3.1 工作原理 32
3.2 需求 34
3.3 代码 34
3.3.1 显示网格 34
3.3.2 设置初始状态 35
3.3.3 实现边界条件 36
3.3.4 实现规则 37
3.3.5 向程序传递命令行参数 37
3.3.6 初始化 38
3.4 运行程序 38
3.5 小结 40
3.6 实验 40
3.7 完整代码 40
第 4 章 使用 Karplus-Strong 算法生成泛音 43
4.1 工作原理 442
4.1.1 模拟 45
4.1.2 WAV 文件格式 46
4.1.3 小调五声音阶 47
4.2 需求 48
4.3 代码 48
4.3.1 使用 deque 实现环形缓冲区 48
4.3.2 实现 Karplus-Strong算法 48
4.3.3 写入 WAV 文件 50
4.3.4 使用 PyAudio 播放 WAV文件 50
4.3.5 创建音符及分析参数 52
4.4 运行弹拨乐器模拟程序 53
4.5 小结 54
4.6 实验 54
4.7 完整代码 54
第 5 章 群体行为模拟 58
5.1 工作原理 58
5.2 需求 59
5.3 代码 59
5.3.1 初始化模拟 59
5.3.2 设置边界条件 60
5.3.3 绘制个体 62
5.3.4 应用群体行为规则 63
5.3.5 影响模拟 67
5.3.6 分步模拟 68
5.3.7 分析参数及实例化Boids 类 69
5.4 运行群体行为模拟程序 69
5.5 小结 69
5.6 实验 70
5.7 完整代码 70
第三部分 好玩的图形
第 6 章 文本图形 74
6.1 工作原理 75
6.2 需求 76
6.3 代码 76
6.3.1 定义灰度标尺和网格 76
6.3.2 计算平均亮度 77
6.3.3 根据图像生成 ASCII 内容 77
6.3.4 定义命令行参数 78
6.3.5 将表示文本图形的字符串写入文本文件 79
6.4 运行文本图形生成程序 79
6.5 小结 80
6.6 实验 80
6.7 完整代码 80
第 7 章 照片马赛克 83
7.1 工作原理 83
7.1.1 分割目标图像 84
7.1.2 计算平均 RGB 值 84
7.1.3 匹配图像 85
7.2 需求 87
7.3 代码 87
7.3.1 读入输入图像 87
7.3.2 计算图像的平均 RGB 值 88
7.3.3 将目标图像分割为网格 88
7.3.4 查找与分片最匹配的图像 89
7.3.5 创建图像网格 90
7.3.6 创建照片马赛克 91
7.3.7 编写函数 main() 93
7.4 运行照片马赛克生成程序 94
7.5 小结 95
7.6 实验 95
7.7 完整代码 95
第 8 章 裸眼立体画 101
8.1 工作原理 102
8.1.1 感知裸眼立体画中的深度 102
8.1.2 使用深度图 103
8.1.3 平移像素 105
8.2 需求 106
8.3 代码 106
8.3.1 创建由随机圆组成的分片 106
8.3.2 重复分片 107
8.3.3 创建裸眼立体画 108
8.3.4 提供命令行参数 109
8.4 运行裸眼立体画生成程序 109
8.5 小结 110
8.6 实验 111
8.7 完整代码 111
第四部分 走进三维
第 9 章 理解 OpenGL 116
9.1 OpenGL 的工作原理 117
9.1.1 图元 117
9.1.2 三维变换 118
9.1.3 着色器 120
9.1.4 顶点缓存 121
9.1.5 纹理映射 121
9.1.6 OpenGL 上下文 122
9.2 需求 122
9.3 代码 122
9.3.1 RenderWindow 类 123
9.3.2 Scene 类 125
9.3.3 辅助函数 129
9.4 运行 OpenGL 应用程序 130
9.5 小结 130
9.6 实验 130
9.7 完整代码 131
第 10 章 圆环面上的康威生命游戏 136
10.1 工作原理 136
10.1.1 计算顶点 136
10.1.2 计算光照法线 138
10.1.3 渲染 139
10.1.4 给三角形带着色 140
10.1.5 控制相机 140
10.1.6 将网格映射到圆环面 141
10.2 需求 142
10.3 代码 142
10.3.1 渲染圆环面 142
10.3.2 实现康威生命游戏模拟 148
10.3.3 创建相机 149
10.3.4 整合代码 151
10.4 运行三维版康威生命游戏模拟 153
10.5 小结 154
10.6 实验 155
10.7 完整的圆环面渲染代码 155
10.8 完整的康威生命游戏模拟代码 160
10.9 完整的相机创建代码 161
10.10 RenderWindow 类的完整代码 162
第 11 章 体渲染 166
11.1 工作原理 166
11.1.1 数据格式 167
11.1.2 生成光线 167
11.1.3 OpenGL 窗口 169
11.2 需求 169
11.3 代码 169
11.3.1 生成三维纹理 170
11.3.2 生成光线 171
11.3.3 实现体光线投射算法 176
11.3.4 显示二维切片 180
11.3.5 整合代码 183
11.4 运行程序 185
11.5 小结 185
11.6 实验 185
11.7 完整的三维纹理生成代码 186
11.8 完整的光线生成代码 187
11.9 完整的体光线投射算法代码 192
11.10 显示二维切片的完整代码 195
11.11 完整的主文件代码 198
第五部分 玩转硬件
第 12 章 在树莓派 Pico 上实现Karplus-Strong 算法 202
12.1 工作原理 203
12.1.1 输入和输出 203
12.1.2 I2S 协议 204
12.2 需求 205
12.2.1 组装硬件 205
12.2.2 安装 MicroPython 207
12.3 代码 207
12.3.1 设置 207
12.3.2 生成音符 208
12.3.3 播放音频 210
12.3.4 编写函数 main() 211
12.4 运行程序 212
12.5 小结 213
12.6 实验 213
12.7 完整代码 214
第 13 章 树莓派激光音乐秀 218
13.1 工作原理 218
13.1.1 使用激光生成图案 219
13.1.2 使用快速傅里叶变换分析音频 222
13.2 需求 224
13.2.1 在树莓派上安装系统和软件 224
13.2.2 搭建激光秀装置 225
13.2.3 连接硬件 226
13.3 代码 228
13.3.1 设置 228
13.3.2 控制硬件 229
13.3.3 处理音频 230
13.3.4 测试电机 233
13.3.5 整合代码 234
13.4 运行激光音乐秀程序 235
13.5 小结 236
13.6 实验 236
13.7 完整代码 237
第 14 章 物联网花园 242
14.1 工作原理 242
14.1.1 低功耗蓝牙 243
14.1.2 Web 框架 Bottle 245
14.1.3 SQLite 数据库 246
14.2 需求 247
14.2.1 在树莓派上安装系统和软件 247
14.2.2 安装 CircuitPython 247
14.2.3 设置 IFTTT 服务 248
14.3 代码 249
14.3.1 CircuitPython 代码 249
14.3.2 BLE 扫描器代码 252
14.3.3 Web 服务器代码 258
14.3.4 主程序文件 264
14.4 运行物联网花园程序 266
14.5 小结 267
14.6 实验 267
14.7 完整的 CircuitPython 代码 268
14.8 完整的 BLE 扫描器代码 270
14.9 完整的 Python Web 服务器代码 273
14.10 完整的主程序代码 275
第 15 章 树莓派音频机器学习 277
15.1 机器学习概述 277
15.2 工作原理 278
15.2.1 声谱图 280
15.2.2 在树莓派上推断 281
15.3 需求 283
15.4 代码 284
15.4.1 在 Colab 中训练模型 284
15.4.2 在树莓派上使用模型 293
15.5 运行语音识别系统 301
15.6 小结 302
15.7 实验 303
15.8 完整代码 303
附录 A 安装 Python 309
A.1 获取本书项目的源代码 309
A.2 安装 Python 和 Python 模块 309
A.2.1 Windows 309
A.2.2 macOS 310
A.2.3 Linux 311
附录 B 设置树莓派 312
B.1 安装操作系统 312
B.2 测试连接 314
B.3 使用 SSH 登录树莓派 315
B.4 安装 Python 模块 316
B.5 远程使用 Visual Studio Code 316

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2026 (香港)大書城有限公司  All Rights Reserved.