在线客服
Python极客项目编程图书
人气:574

Python极客项目编程

本书包含了一组富有想象力的编程项目,它们将引导你用Python 来制作图像和音乐、模拟现实世界的现象,并与 Arduino 和树莓派这样的硬件进行交互。
  • 所属分类:图书 >计算机/网络>程序设计>其他  
  • 作者:[美] [Mahesh] [Venkitachalam]
  • 产品参数:
  • 丛书名:--
  • 国际刊号:9787115449764
  • 出版社:人民邮电出版社
  • 出版时间:2017-03
  • 印刷时间:2017-03-01
  • 版次:1
  • 开本:16开
  • 页数:--
  • 纸张:胶版纸
  • 包装:平装-胶订
  • 套装:

内容简介

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。 本书通过14个有趣的项目,帮助和鼓励读者探索Python编程的世界。全书共14章,分别介绍了通过Python编程实现的一些有趣项目,包括解析iTunes播放列表、模拟人工生命、创建ASCII码艺术图、照片拼接、生成三维立体图、创建粒子模拟的烟花喷泉效果、实现立体光线投射算法,以及用Python结合Arduino和树莓派等硬件的电子项目。本书并不介绍Python语言的基础知识,而是通过一系列不简单的项目,展示如何用Python来解决各种实际问题,以及如何使用一些流行的Python库。 本书适合那些想要通过Python编程来进行尝试和探索的读者,适合了解基本的Python语法和基本的编程概念的读者进一步学习,对于Python程序员有一定的启发和参考价值。

编辑推荐

Python 是一种强大的编程语言,容易学习而且充满乐趣。但掌握了基本知识后,接下来做什么? 本书包含了一组富有想象力的编程项目,它们将引导你用Python 来制作图像和音乐、模拟现实世界的现象,并与 Arduino 和树莓派这样的硬件进行交互。你将学习使用常见的Python 工具和库,如numpy、matplotlib 和pygame, 来完成以下工作: ● 利用参数方程和turtle模块生成万花尺图案; ● 通过模拟频率泛音在计算机上创作音乐; ● 将图形图像转换为ASCII文本图形; ● 编写一个三维立体画程序,生成隐藏在图案下的3D图像; ● 通过探索粒子系统、透明度和广告牌技术,利用OpenGL着色器制作逼真的动画; ● 利用来自CT和MRI扫描的数据实现3D可视化; ● 将计算机连接到Arduino编程,创建响应音乐的激光秀。 通过本书,你可以享受作为极客的真正乐趣!

作者简介

Mahesh Venkitachalam是一位拥有二十年编程经验的软件工程师。 他从八年级就开始培养对技术的热情,汇集成了他受欢迎的电子和编程博客:electronut.in。

目录

第1章 解析iTunes播放列表 3

1.1iTunes播放列表文件剖析3

1.2所需模块5

1.3代码5

1.3.1查找重复5

1.3.2提取重复6

1.3.3查找多个播放列表中

共同的音轨7

1.3.4收集统计信息8

1.3.5绘制数据8

1.3.6命令行选项9

1.4完整代码10

1.5运行程序13

1.6小结14

1.7实验14

第2章万花尺15

2.1参数方程16

2.1.1万花尺方程17

2.1.2海龟画图19

2.2所需模块20

2.3代码20

2.3.1Spiro构造函数20

2.3.2设置函数21

2.3.3restart()方法21

2.3.4draw()方法22

2.3.5创建动画22

2.3.5SpiroAnimator类23

2.3.5genRandomParams()方法24

2.3.6重新启动程序24

2.3.7update()方法25

2.3.8显示或隐藏光标25

2.3.9保存曲线25

2.3.10解析命令行参数和初始化26

2.4完整代码27

2.5运行万花尺动画32

2.6小结33

2.7实验33

第二部分模拟生命

第3章Conway生命游戏37

3.1工作原理38

3.2所需模块39

3.3代码40

3.3.1表示网格40

3.3.2初始条件41

3.3.3边界条件41

3.3.4实现规则42

3.3.5向程序发送命令行参数43

3.3.6初始化模拟43

3.4完整代码44

3.5运行模拟人生的游戏46

3.6小结47

3.7实验47

第4章用Karplus-Strong算法产生

音乐泛音49

4.1工作原理51

4.1.1模拟51

4.1.2创建WAV文件52

4.1.3小调五声音阶53

4.2所需模块54

4.3代码54

4.3.1用deque实现环形缓冲区54

4.3.2实现Karplus-Strong算法55

4.3.3写WAV文件56

4.3.4用pygame播放WAV

文件56

4.3.5main()方法57

4.4完整代码58

4.5运行拨弦模拟61

4.6小结62

4.7实验62

第5章类鸟群:仿真鸟群63

5.1工作原理64

5.2所需模块64

5.3代码64

5.3.1计算类鸟群的位置和速度65

5.3.2设置边界条件66

5.3.3绘制类鸟群67

5.3.4应用类鸟群规则68

5.3.5添加个体70

5.3.6驱散类鸟群71

5.3.7命令行参数71

5.3.8Boids类71

5.4完整代码72

5.5运行类鸟群模拟75

5.6小结76

5.7实验76

第三部分图片之乐

第6章ASCII文本图形79

6.1工作原理80

6.2所需模块81

6.3代码81

6.3.1定义灰度等级和网格82

6.3.2计算平均亮度82

6.3.3从图像生成ASCII内容83

6.3.4命令行选项84

6.3.5将ASCII文本图形字符

串写入文本文件84

6.4完整代码85

6.5运行ASCII文本图形生成程序87

6.6小结87

6.7实验88

第7章照片马赛克89

7.1工作原理90

7.1.1分割目标图像90

7.1.2平均颜色值91

7.1.3匹配图像91

7.2所需模块92

7.3代码92

7.3.1读入小块图像92

7.3.2计算输入图像的平均

颜色值93

7.3.3将目标图像分割成网格93

7.3.4寻找小块的匹配94

7.3.5创建图像网格95

7.3.6创建照片马赛克96

7.3.7添加命令行选项97

7.3.8控制照片马赛克的大小97

7.4完整代码98

7.6运行照片马赛克生成程序102

7.7小结103

7.7实验103

第8章三维立体画105

8.1工作原理106

8.1.1感知三维立体画中的深度106

8.1.2深度图108

8.2所需模块109

8.3代码109

8.3.1重复给定的平铺图像109

8.3.2从创建随机圆平铺110

8.3.3创建三维立体画111

8.3.4命令行选项112

8.4完整代码113

8.5运行三维立体画生成程序115

8.6小结117

8.7实验117

第四部分走进三维

第9章理解OpenGL121

9.1老式OpenGL122

9.2现代OpenGL:三维图形管线124

9.2.1几何图元124

9.2.2三维变换125

9.2.3着色器127

9.2.4顶点缓冲区128

9.2.5纹理贴图129

9.2.6显示OpenGL129

9.3所需模块130

9.4代码130

9.4.1创建OpenGL窗口130

9.4.2设置回调131

9.4.3Scene类133

9.5完整代码137

9.6运行OpenGL应用程序142

9.7小结143

9.8实验143

第10章粒子系统145

10.1工作原理146

10.1.1为粒子运动建模147

10.1.2设置较大范围147

10.1.3渲染粒子149

10.1.4利用OpenGL混合来

创建更逼真火花149

10.1.5使用公告板150

10.1.6生成火花动画151

10.2所需模块151

10.3粒子系统的代码151

10.3.1定义粒子的几何形状152

10.3.2为粒子定义时间延迟

数组153

10.3.3设置粒子初始速度153

10.3.4创建顶点着色器154

10.3.5创建片段着色器156

10.3.6渲染156

10.3.7Camera类158

10.4粒子系统完整代码158

10.5盒子代码164

10.6主程序代码166

10.6.1每步更新这些粒子167

10.6.2键盘处理程序168

10.6.3管理主程序循环168

10.7完整主程序代码169

10.8运行程序172

10.9小结172

10.10实验172

第11章体渲染173

11.1工作原理174

11.1.1数据格式174

11.1.2生成光线175

11.1.3显示OpenGL窗口177

11.2所需模块178

11.3项目代码概述178

11.4生成三维纹理178

11.5完整的三维纹理代码180

11.6生成光线181

11.6.1定义颜色立方体的

几何形状182

11.6.2创建帧缓冲区对象184

11.6.3渲染立方体的背面185

11.6.4渲染立方体的正面185

11.6.5渲染整个立方体186

11.6.6调整大小处理程序187

11.7完整的光线生成代码187

11.8体光线投射192

11.8.1顶点着色器194

11.8.2片段着色器194

11.9完整的体光线投射代码196

11.10二维切片199

11.10.1顶点着色器201

11.10.2片段着色器202

11.10.3针对二维切片的

用户界面202

11.11完整的二维切片代码203

11.12代码整合206

11.13完整的主文件代码207

11.14运行程序209

11.15小结210

11.16实验210

第五部分玩硬件

第12章Arduino简介215

12.1Arduino216

12.2Arduino生态系统217

12.2.1语言218

12.2.2IDE218

12.2.3社区218

12.2.4外设219

12.3所需模块219

12.4搭建感光电路219

12.4.1电路工作原理219

12.4.2Arduino程序220

12.4.3创建实时图表221

12.5Python代码222

12.6完整的Python代码224

12.7运行程序226

12.8小结227

12.9实验227

第13章激光音乐秀229

13.1用激光产生图案230

13.1.1电机控制230

13.1.2快速傅里叶变换232

13.2所需模块233

13.2.1搭建激光秀234

13.2.2连接电机驱动器236

13.3Arduino程序237

13.3.1配置Arduino数字

输出引脚238

13.3.2主循环238

13.3.3停止电机240

13.4Python代码240

13.4.1选择音频设备241

13.4.2从输入设备读取数据241

13.4.3计算数据流的FFT242

13.4.4从FFT值提取频率

信息243

13.4.5将频率转换为电机

速度和方向243

13.4.6测试电机设置244

13.4.7命令行选项245

13.4.8手动测试245

13.5完整的Python代码246

13.6运行程序249

13.7小结250

13.8实验250

第14章基于树莓派的天气监控器253

14.1硬件254

14.1.1DHT11温湿度传感器254

14.1.2树莓派255

14.1.3设置树莓派255

14.2安装和配置软件256

14.2.1操作系统257

14.2.2初始配置257

14.2.3Wifi设置257

14.2.4设置编程环境258

14.2.5通过SSH连接259

14.2.6Web框架Bottle259

14.2.7用flot绘制260

14.2.8关闭树莓派261

14.3搭建硬件262

14.4代码263

14.4.1处理传感器数据请求264

14.4.2绘制数据264

14.4.3update()方法267

14.4.4用于LED的JavaScript

处理程序267

14.4.5添加交互性268

14.5完整代码269

14.6运行程序272

14.7小结273

14.8实验273

附录A软件安装275

附录B基础实用电子学281

附录C树莓派的建议和技巧289

网友评论(不代表本站观点)

来自匿名用**的评论:

虽然原版书名没有极客,但是这些项目大部分都是极客类项目,所以说重点不在python,而在于极客,想用此书来python进阶要注意

2017-04-20 17:51:23
来自匿名用**的评论:

这个应该挺有意思的

2017-06-10 21:25:40
来自沉默寡**的评论:

很好很好很好很好

2017-06-17 22:46:46
来自匿名用**的评论:

性价比很高

2017-07-02 10:53:03
来自匿名用**的评论:

整体感觉不错

2017-07-11 09:09:45
来自匿名用**的评论:

好好好好好好好好好好好好好好好

2017-07-22 18:19:52
来自无昵称**的评论:

学习编程用的,书的小项目还是挺不错的。

2017-08-25 11:46:51
来自无昵称**的评论:

书很好!!

2017-08-29 16:56:39
来自南京李**的评论:

非常好的一本书

2017-09-27 17:56:18
来自无昵称**的评论:

书很新很好

2017-10-03 11:14:04
来自burpmap**的评论:

挺有意思的一本书

2017-11-01 13:40:26
来自匿名用**的评论:

包装不错,总体还可以

2017-11-03 13:59:41

免责声明

更多出版社