一、书籍定位与特色
- 面向读者:已掌握 Python 基础语法、希望借项目深入探索的“进阶初学者”及创客。
- 内容风格:14 个“极客”级项目,横跨软件、数学、图形、硬件四大维度;所有示例均提供完整源码(GitHub 开源),可立即运行与二次开发。
- 技术亮点
- 纯 Python 3 兼容 Python 2;跨 Windows / macOS / Linux / 树莓派。
- 大量引入 numpy、matplotlib、pygame、OpenGL、Arduino、Raspberry Pi、GLSL 着色器等生态。
- 突出“算法—代码—可视化—硬件联动”四步闭环,培养“问题分解—原型验证—调参优化”的工程思维。
二、结构总览
全书 14 章分五大板块,每章均包含“工作原理→模块清单→逐段剖析→完整源码→运行指南→小结→实验”,学习路径清晰。
第一部分 热身运动
- 解析 iTunes 播放列表
利用 plistlib 读取 XML 播放列表,用 set / dict / numpy 找出重复曲目、公共曲目,并绘制“评分 vs. 时长”散点图与直方图。
- 万花尺(Spirograph)
用 turtle 绘制参数方程驱动的万花尺曲线;引入动画框架、PNG 输出、命令行调参。
第二部分 模拟生命
- Conway 生命游戏
numpy 矩阵 + matplotlib animation 实现可交互的元胞自动机,支持滑翔机、Gosper Gun 等经典模式。
- Karplus-Strong 吉他音模拟
deque 实现环形缓冲区,生成五声音阶 WAV;pygame 实时播放,并可随机演奏。
- 类鸟群(Boids)
用 numpy 向量化实现“分离-列队-内聚”三规则;支持鼠标增删个体、右键驱散、避障扩展。
第三部分 图片之乐
- ASCII 文本图形
Pillow 转灰度 → 计算平均亮度 → 字符映射 → 生成可缩放的文本画。
- 照片马赛克
将目标图切成网格,用平均 RGB 最近邻匹配,拼贴海量小图形成马赛克,支持重用开关与 KD-Tree 加速。
- 三维立体画(Autostereogram)
深度图 + 平铺图 → 像素水平位移 → 生成“墙眼”3D 错觉图;可自定义深度比例与平铺纹理。
第四部分 走进三维
- 现代 OpenGL 入门
GLFW 建窗,GLSL 顶点/片段着色器,纹理贴图,矩阵变换;实现旋转星形纹理正方形。
- 粒子系统:火花喷泉
GPU 端 GLSL 计算粒子抛物线轨迹;公告板始终面向相机;OpenGL 混合与 Alpha 实现真实火花。
- 体渲染(Volume Ray Casting)
将医学 CT/MRI 切片堆叠成 3D 纹理;GPU 光线投射实现 X-Ray 效果;支持按 x/y/z 轴实时切片浏览。
第五部分 玩转硬件
- Arduino 光敏监测
搭建 LDR 分压电路,Arduino 读模拟值 → 串口 → Python + matplotlib 实时滚动画图。
- 激光音乐秀
双电机+双倾斜镜+激光笔;Arduino PWM 控制转速与方向;Python 实时 FFT 分析音频频段 → 映射电机参数,随音乐舞动激光图案。
- 树莓派天气监控器
DHT11 读取温湿度 → Bottle 框架架设 Web 服务器 → 浏览器 AJAX + flot 图表实时更新;附带 Web 开关控制 LED。
三、配套资源
- 源码与测试数据:GitHub 仓库 electronut/pp 一键下载。
- 安装指引:附录 A 提供 Windows / macOS / Linux 的 Python、GLFW、二进制包及交叉编译说明。
- 电子入门:附录 B 用图解方式讲解面包板、LDR、IC、PCB、焊接工具及 EAGLE/KiCad 设计流程。
- 树莓派技巧:附录 C 汇总 Wi-Fi 设置、SSH 无密码登陆、系统备份、相机/音频/HDMI 启用等实战锦囊。
四、阅读与进阶路线
- “软件 → 图形 → 硬件” 渐进式难度:每章结尾的“实验”提供 2–4 个扩展任务,鼓励读者修改参数、增加功能或移植到其他平台。
- 创客闭环:从纯算法项目到“软件-硬件”联合系统,帮助读者把 Python 从“脚本语言”升级为“全栈创意实现工具”。
- 可交付成果:可直接用于课程设计、创客马拉松或个人作品集,亦可作为深度阅读 OpenGL、数字信号处理、嵌入式开发的跳板。
一句话总结:
《Python极客项目编程》用 14 个趣味盎然的实战案例,带领读者在代码、数学、视觉与硬件的交叉地带尽情“折腾”,让 Python 成为连接数字世界与物理世界的万能“瑞士军刀”。