当前位置:主页 > 书籍配套资源 > Python编程配套资源
《Python极客项目编程》配套资源

《Python极客项目编程》配套资源

  • 更新:2021-11-04
  • 大小:18.83 MB
  • 类别:Python编程
  • 作者:[美]、Mahesh、Venkitach
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐

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

内容简介

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

作者简介

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

目录

  • 第1章 解析iTunes播放列表3
  • 1.1 iTunes播放列表文件剖析 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.1 Spiro构造函数 20
  • 2.3.2 设置函数 21
  • 2.3.3 restart()方法 21
  • 2.3.4 draw()方法 22
  • 2.3.5 创建动画 22
  • 2.3.5 SpiroAnimator类 23
  • 2.3.5 genRandomParams()方法 24
  • 2.3.6 重新启动程序 24
  • 2.3.7 update()方法 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.5 main()方法 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.8 Boids类 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章 理解OpenGL 121
  • 9.1 老式OpenGL 122
  • 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 显示OpenGL 129
  • 9.3 所需模块 130
  • 9.4 代码 130
  • 9.4.1 创建OpenGL窗口 130
  • 9.4.2 设置回调 131
  • 9.4.3 Scene类 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.7 Camera类 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.1 Arduino 216
  • 12.2 Arduino生态系统 217
  • 12.2.1 语言 218
  • 12.2.2 IDE 218
  • 12.2.3 社区 218
  • 12.2.4 外设 219
  • 12.3 所需模块 219
  • 12.4 搭建感光电路 219
  • 12.4.1 电路工作原理 219
  • 12.4.2 Arduino程序 220
  • 12.4.3 创建实时图表 221
  • 12.5 Python代码 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.3 Arduino程序 237
  • 13.3.1 配置Arduino数字输出引脚 238
  • 13.3.2 主循环 238
  • 13.3.3 停止电机 240
  • 13.4 Python代码 240
  • 13.4.1 选择音频设备 241
  • 13.4.2 从输入设备读取数据 241
  • 13.4.3 计算数据流的FFT 242
  • 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.1 DHT11温湿度传感器 254
  • 14.1.2 树莓派 255
  • 14.1.3 设置树莓派 255
  • 14.2 安装和配置软件 256
  • 14.2.1 操作系统 257
  • 14.2.2 初始配置 257
  • 14.2.3 Wifi设置 257
  • 14.2.4 设置编程环境 258
  • 14.2.5 通过SSH连接 259
  • 14.2.6 Web框架Bottle 259
  • 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.3 update()方法 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

资源下载

资源下载地址1:https://box.lenovo.com/l/PH3T98

相关资源

网友留言