开发有趣的极客项目,掌握实用的Python编程技能 本书包含了一组富有想象力的编程项目,它们将引导你用 Python 来制作图像和音乐、模拟现实世界的现象,并与 Arduino 和树莓派这样的硬件进行交互。你将学习使用常见的 Python 工具和库,如 numpy、matplotlib 和 pygame, 来完成以下工作: ● 利用参数方程和turtle模块生成万花尺图案; ● 通过模拟频率泛音在计算机上创作音乐; ● 将图形图像转换为ASCII文本图形; ● 编写一个三维立体画程序,生成隐藏在随机图案下的3D图像; ● 通过探索粒子系统、透明度和广告牌技术,利用OpenGL着色器制作逼真的动画; ● 利用来自CT和MRI扫描的数据实现3D可视化; ● 将计算机连接到Arduino编程,创建响应音乐的激光秀。 极客项目编程 Python Python 是一种强大的编程语言,容易学习而且充满乐趣。但掌握了基本知识后,接下来做什么? Python 极客项目编程 [美] Mahesh Venkitachalam 著   王海鹏 译 通过本书,你可以享受作为极客的真正乐趣! 作者简介 Mahesh Venkitachalam 是一位拥有二十年编程经验的软件工程师。他从学生时代就开始培养对技术的热情。他 拥有一个广受欢迎的电子和编程博客:electronut.in。 美术编辑:董志桢 分类建议:计算机/程序设计/Python 人民邮电出版社网址:www.ptpress.com.cn FM44976Python极客项目编程.indd 1-3 17-3-15 下午1:21 Python 极客项目编程 [美] Mahesh Venkitachalam 著   王海鹏 译 人 民 邮 电 出 版 社 FM44976Python极客项目编程.indd 4 17-3-15 下午1:19  著 [美] Mahesh Venkitachalam 译 王海鹏 责任编辑 陈冀康 责任印制 焦志炜  人民邮电出版社出版发行 邮编 100164 北京市丰台区成寿寺路 11 号 电子邮件 [email protected] 网址 http://www.ptpress.com.cn 北京鑫正大印刷有限公司印刷  开本:8001000 1/16 印张:19.5 字数:441 千字 2017 年 5 月第 1 版 印数:1 – 3 000 册 2017 年 5 月北京第 1 次印刷 著作权合同登记号 图字:01-2015-8784 号 定价:69.00 元 读者服务热线:(010)81055410 印装质量热线: (010)81055316 广告经营许可证:京东工商广字第 8052 号 内容提要 Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过 Python 编程,我们能够解决现实生活中的很多任务。 本书通过 14 个有趣的项目,帮助和鼓励读者探索 Python 编程的世界。全书共 14 章,分别介绍了通过 Python 编程实现的一些有趣项目,包括解析 iTunes 播放列 表、模拟人工生命、创建 ASCII 码艺术图、照片拼接、生成三维立体图、创建粒子 模拟的烟花喷泉效果、实现立体光线投射算法,以及用 Python 结合 Arduino 和树莓 派等硬件的电子项目。本书并不介绍 Python 语言的基础知识,而是通过一系列不简 单的项目,展示如何用 Python 来解决各种实际问题,以及如何使用一些流行的 Python 库。 本书适合那些想要通过 Python 编程来进行尝试和探索的读者,适合了解基本的 Python 语法和基本的编程概念的读者进一步学习,对于 Python 程序员有一定的启 发和参考价值。 致谢 写一本书就像跑马拉松。有人这么对我说过。但我确实知道,写这本书考验了 我的耐力极限,没有亲朋好友和家人为我摇旗呐喊,我不可能完成。 首先,我感谢我的妻子 Hema,她不变的爱、鼓励和耐心,贯穿了完成这项工 作的整整两年时间。我感谢我的朋友 Raviprakash Jayaraman,他是我所有不确定的 项目的“同谋”,也是本书的技术评审,我们一起吃了许多有趣的午餐、看了不少 电影,多次去逛 S.P. Road Zoo。我感谢我的朋友 Seby Kallarakkal,他推动我编写这 本书,进行了多次有趣的讨论。我很感谢我的朋友 Santosh Hemachandra 博士在快 速傅里叶变换上的有益讨论。我感谢 Karthikeyan Chellappa,帮助我测试 Python 模 块的安装,和我一起围绕 Kaikondrahalli 湖跑步。我还要感谢 Matthew Denham(我 与他在 Reddit 上交谈) ,他对万花尺(Spirograph)的数学知识提供了帮助。 我感谢 No Starch 出版社的 Tyler Ortman 和 Bill Pollock,他们接受了我编写本 书的意向。还要感谢 Serena Yang 编辑本书的专业工作。我感谢 Nicholas Kramer 对 本书的技术评阅。 我感谢我的父母 A.V. Venkitachalam 和 N. Saraswathy,他们为我提供的教育远 远超越了他们的财务能力。最后,我感谢所有给我启发的老师,我希望一辈子做一 名学生。 前 言 欢迎阅读本书!在本书中,你会看到 14 个令人兴奋的项目, 旨在鼓励你探索 Python 编程的世界。 这些项目涉及广泛的主题, 如绘制类似万花尺的花纹、生成 ASCII 码艺术图、3D 渲染,以 及根据音乐同步投射激光图像。除了本身很有趣之外,这些项 目的意图是提供一些起点,让你通过扩展每个项目,来探索你 自己的想法。 本书的目标读者 本书的目标读者,是所有想知道如何利用编程来理解和探索想法的人。本书的项目 假设你了解基本的 Python 语法和基本的编程概念,并假设你熟悉高中数学知识。我已 经尽了最大的努力,详细解释了所有项目中需要的数学知识。 本书不会是你的第一本 Python 书。我不会指导你学习基本知识。但我会通过一系列 不简单的项目,向你展示如何用 Python 来解决各种实际问题。在学习这些项目时,你将 探索 Python 编程语言的细微差别,并学习如何使用一些流行的 Python 库。但也许更重要 的是,你将学习如何将问题分解成几个部分,开发一个算法来解决这个问题,然后从头 用 Python 来实现一个解决方案。解决现实世界的问题可能很难,因为它们往往是开放式 的,并且需要各个领域的专业知识。但 Python 提供了一些工具,协助解决问题。克服困 难,寻找实际问题的解决方案,这是成为专家级程序员的旅途中最重要的环节。 本书的内容 让我们快速浏览一下本书各章的内容。 前 言 第一部分:热身运动 第 1 章展示了如何解析 iTunes 播放列表文件,并从中收集有用的信息,如音轨 长度和共同的音轨。在第 2 章中,我们使用参数方程及海龟作图法,绘制类似万花 尺产生的那些曲线。 第二部分:模拟生命 这部分是用数学模型来模拟现象。在第 3 章中,我们将学习如何实现 Conway 游戏的生命游戏算法,产生动态的模式来创建其他模式,以模拟一种人工生命。第 4 章展示了如何用 Karplus-Strong 算法来创建逼真的弹拨音。然后,在第 5 章中,我 们将学习如何实现类鸟群算法,模拟鸟类的聚集行为。 第三部分:图像之乐 这部分介绍使用 Python 读取和操作 2D 图像。第 6 章展示了如何根据图像创建 ASCII 码艺术图。在第 7 章中,我们将进行照片拼接。在第 8 章中,我们将学习如 何生成三维立体图,它让人产生 3D 图像的错觉。 第四部分:走进三维 这一部分的项目使用 OpenGL 的 3D 图形库。第 9 章介绍使用 OpenGL 创建简单 3D 图形的基本知识。在第 10 章中,我们将创建粒子模拟的烟花喷泉,它用数学和 OpenGL 着色器来计算和渲染。在第 11 章中,我们将使用 OpenGL 着色器来实现立 体光线投射算法,来渲染立体数据,该技术常用于医疗影像,如 MRI 和 CT 扫描。 第五部分:玩转硬件 在最后一部分中,我们将用 Python 来探索 Arduino 微控制器和树莓派。在第 12 章中,我们将利用 Arduino,通过一个简单电路读取并标绘传感器数据。在第 13 章中,我们将利用 Python 和 Arduino 来控制两个旋转镜和激光器,生成响应声音的 激光秀。在第 14 章中,我们将使用树莓派打造一个基于网络的气象监测系统。 为何选择 Python Python 是探索编程的理想语言。作为一种多范式语言,在如何组织程序方面,它 提供了极大的灵活性。你可以将 Python 视为脚本语言,简单地执行代码,或将其视为 过程语言,把程序组织成一组彼此调用的函数,或将其视为面向对象语言,利用类、 继承和模块来建立层次结构。这种灵活性让你可以选择最适合特定项目的编程风格。 前 言 如果用更传统的语言来开发,如 C 或 C ++,你必须先编译和链接代码,然后 才能运行它。使用 Python,你可以编辑后直接运行它(在背后,Python 将你的代码 编译成中间字节码,然后由 Python 解释器运行,但这些过程对用户是透明的) 。在 实践中,用 Python 多次修改并运行代码,要容易很多。 此外,Python 解释器是非常方便的工具,可用于检查代码语法,获得模块的帮 助,进行快速计算,甚至测试在开发中的代码。例如,我写 Python 代码时,会打开 三个窗口:文本编辑器、命令行和 Python 解释器。我在编辑器中写代码时,会在解 释器中导入我的函数或类,边开发边测试。 Python 有一组非常小、简单而强大的数据结构。如果你理解了字符串、列表、 元组、字典、列表解析和基本控制结构,如 for 和 while 循环,那么你已经开了个好 头。 Python 简洁而有表现力的语法,使得我们很容易只用几行代码,就完成复杂 的操作。而一旦熟悉 Python 内置的模块和第三方模块,你将拥有大量的工具,用于 解决真正的问题,就像本书中介绍的那样。从 Python 中调用 C/C++代码有标准的方 式,反之亦然。因为在 Python 中可以找到库来做几乎所有事情,我们很容易在大型 项目中组合使用 Python 和其他语言模块。这就是为什么 Python 被认为是了不起的 胶水语言,它可以很容易地组合使用不同的软件组件。本书最后的硬件项目展示了

pdf文档 641577 Python极客项目编程 Mahesh Venkitachalam完整版

专业资料 > IT/计算机 > 计算机软件及应用 > 文档预览
299 页 0 下载 214 浏览 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
641577 Python极客项目编程  Mahesh Venkitachalam完整版 第 1 页 641577 Python极客项目编程  Mahesh Venkitachalam完整版 第 2 页 641577 Python极客项目编程  Mahesh Venkitachalam完整版 第 3 页 641577 Python极客项目编程  Mahesh Venkitachalam完整版 第 4 页 641577 Python极客项目编程  Mahesh Venkitachalam完整版 第 5 页
下载文档到电脑,方便使用
还有 294 页可预览,继续阅读
本文档由 woyaoziliao 于 2020-12-12上传分享
相关精品文档