×
暂无评论
图文详情
  • ISBN:9787115642363
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:316
  • 出版时间:2024-07-01
  • 条形码:9787115642363 ; 978-7-115-64236-3

本书特色

Python以其简洁的语法、强大的功能、较低的学习门槛而受到广大编程爱好者的喜爱。但是,学习完Python的基础语法和编程知识后,如何提升Python编程技能呢?

本书通过15个有趣且富有创造性的编程项目,教你用Python生成图像和音乐、模拟现实世界中的现象,并与树莓派等硬件进行交互。



本书项目涵盖绘画、图像处理、3D渲染、树莓派、物联网、AI机器学习等,讲解众多实用的Python库:NumPy、Matplotlib、scipy、PyAudio、Pillow、sqlite3、turtle、math、argparse、OpenGL、tensorflow……

● 使用海龟绘图法绘制复杂的分形图案和繁花曲线;

● 模拟弹拨乐器的声音生成音乐;

● 设计引人入胜的元胞自动机并实现群体行为模拟;

● 实现二维和三维空间中的康威生命游戏;

● 将普通图像转换为文本图形、照片马赛克和令人惊叹的裸眼立体画;
Python以其简洁的语法、强大的功能、较低的学习门槛而受到广大编程爱好者的喜爱。但是,学习完Python的基础语法和编程知识后,如何提升Python编程技能呢?

本书通过15个有趣且富有创造性的编程项目,教你用Python生成图像和音乐、模拟现实世界中的现象,并与树莓派等硬件进行交互。



本书项目涵盖绘画、图像处理、3D渲染、树莓派、物联网、AI机器学习等,讲解众多实用的Python库:NumPy、Matplotlib、scipy、PyAudio、Pillow、sqlite3、turtle、math、argparse、OpenGL、tensorflow……

● 使用海龟绘图法绘制复杂的分形图案和繁花曲线;

● 模拟弹拨乐器的声音生成音乐;

● 设计引人入胜的元胞自动机并实现群体行为模拟;

● 实现二维和三维空间中的康威生命游戏;

● 将普通图像转换为文本图形、照片马赛克和令人惊叹的裸眼立体画;

● 探索3D图形,从基本的形状渲染到MRI和CT扫描数据的可视化;

● 使用树莓派创建随音乐起舞的激光表演和物联网花园监测器;

● 构建使用机器学习驱动的语音识别系统。



每个项目都按照【讲解原理-分析需求-代码精讲-知识小结-扩展练习-完整代码】的方式进行讲解,并提供可下载运行的源代码,赠送Python排障手册 程序员面试手册



本书相比上一版进行了如下修订:

(1)新增/替换5个全新项目,紧跟前沿热点

(2)基于Python 3.9全面更新所有项目

(3)采用更新、更实用的Python方法和算法

(4)使用Anaconda简化Python安装

(5)简化硬件项目的组装过程,专注于Python编程

内容简介

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,通过Python编程能够解决现实生活中的很多问题。本书并不介绍Python语言的基础知识,而是通过一系列有趣的项目,展示如何用Python解决各种实际问题,以及如何使用一些流行的Python库。 本书共15章,每章讲解一个有趣的Python项目,这些项目可以分成5个部分:**部分是热身,包括科赫雪花、繁花曲线;第二部分是模拟生命,包括康威生命游戏、使用Karplus-Strong算法生成泛音、群体行为模拟;第三部分是好玩的图形,包括文本图形、照片马赛克、裸眼立体画;第四部分是走进三维,包括理解OpenGL、圆环面上的康威生命游戏、体渲染;第五部分是玩转硬件,包括在树莓派Pico上实现Karplus-Strong算法、树莓派激光音乐秀、物联网花园、树莓派音频机器学习。此外,本书还通过附录介绍如何安装Python和设置树莓派。 本书适合已经了解了基本的Python语法和编程知识、想要尝试和探索通过Python编程解决实际问题的读者阅读,也可作为Python初学者练习项目开发的参考用书。

目录

第 一部分 热身

第 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
展开全部

相关资料

如果你想熟练地运用Python做些聪明的事情,很难找到比此书中的项目更好或更有用的资料来帮助你理解这门语言的工作方式。

——Network World News Magazine



每个Python程序员的书架上都应有这本书。

——Full Circle Magazine



此书中充满有趣的项目。

——iProgrammer网站



本书适合想进一步提升编程水平和扩展Python语言知识的程序员阅读。本书很好地诠释了Python的相关细节,并确保读者能够清楚地了解Python程序

作者简介

马赫什·文基塔查拉姆(Mahesh Venkitachalam)是一名计算机图形学和嵌入式系统顾问,拥有二十余年从业经验。他是Electronut Labs的创始人,该公司以开发充满创意的开源硬件著称。他经常撰写有关编程和电子技术的博客。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航