首页>参考读物>计算机科学与技术>软件与程序设计

树莓派Python编程指南
作者 : (美)Alex Bradbury  Ben Everard 著
译者 : 王文峰 译
丛书名 : 数字匠人
出版日期 : 2015-01-16
ISBN : 978-7-111-48986-3
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 221
开本 : 16
原书名 : Learning Python with Raspberry Pi
原出版社: John Wiley & Sons(UK)
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

树莓派基金会资深软件开发工程师亲笔撰写,系统阐释在树莓派上使用Python开发游戏、多媒体等的实用工具、方法和最佳实践
深入剖析Python常见开发问题,包含大量实践案例,可操作性强,能为用户使用树莓派高效编写Python程序提供有效指导

封底:
本书由树莓派基金会资深软件开发工程师亲笔撰写,是学习在树莓派上编程的必备手册。即使你没有任何编程经验,也可以畅游树莓派的世界。本书覆盖了初学编程者和第一次做Python开发所需的基础知识,书中首先对Python编程做了基本介绍,并给出了通用的Python代码,然后逐步介绍了:
● 配置并开始Python编程
● 使用变量、循环和函数
● 学习3D图形编程
● 使用PyGame
● 编程“我的世界”游戏
● 编写Python脚本
● 理解传感器和GPIO
本书深入浅出地介绍每条命令,并辅以生动的例子和源代码,可以帮助你学习Python编程所需的各种知识和技能,是开启Python编程之旅的必备指南。
读者可以登录华章网站(www.hzbook.com)或访问http://www.wiley.com/go/pythonraspi下载本书源代码。


树莓派基金会资深软件开发工程师亲笔撰写,系统阐释在树莓派上使用Python开发游戏、多媒体等的实用工具、方法和最佳实践,并且深入剖析各种Python常见开发问题,包含大量实践案例,可操作性强,能为用户使用树莓派高效编写Python程序提供有效指导。
本书共12章:第1~3章深入介绍如何在树莓派上使用Python,为学习其他知识打下基础;第4章介绍使用Qt工具包开发图形用户界面;第5章介绍在Python中创建游戏;第6章介绍如何利用GPU来使用OpenGL创建3D场景;第7章讲解如何从网页上抓取信息或使用树莓派为全世界提供内容和服务;第8章介绍使用Python在树莓派中构建自己的游戏世界;第9章使用Python在树莓派中构建自己的多媒体中心;第10章介绍使用Python在树莓派中构建Linux脚本;第11章介绍使用Python编程树莓派的GPIO;第12章介绍使用Python在树莓派中测试与调试程序。


Alex Bradbury 树莓派基金会资深软件开发工程师,对树莓派的发展做出了卓越贡献。他精通Python、C/C++等多种编程语言,尤其对Python语言有独到见解。目前他在申请剑桥大学的多核架构编译技术博士学位。

Ben Everard 资深科技工作者,拥有丰富软件开发经验,创建并掌管Linux之音(www.linuxvoice.com),在该网站的电子杂志和播客上可以找到他的沉思录。之前,他曾做过Linux Format的技术编辑和NoPC的区域经理。在此期间,他负责监管坦桑尼亚的校园计算机测试和部署工作。

图书前言

计算机已经不再只是用来工作的方盒子。任何拥有一个可编程处理中心的东西都可以称作计算机。游戏终端、智能手机、全球卫星定位系统(GPS)单元、平板电脑以及其他许多令人难以置信的设备都说明了这一点。它们都是计算机,并且它们已经接管了这个世界。我们用它们来工作、通信,以及娱乐。事实上,很难找到有哪个领域还从未使用过计算机。
销售人员喜欢用智能来描述嵌入式计算机设备(智能手机、智能电视、智能手表等),事实上它们却并不智能。处理单元只是块执行指令的硅片。智能手机的“智能”并非来自计算机芯片,而是来自对它们编程的人。
计算机是迄今为止人类发明的最强大的工具,但是由于很少有人知道如何开发它的潜能,目前我们只是使用了它的一小部分功能。在充满计算机的世界中,最重要的就是那些可以发挥计算机全部性能的编程人员。编程,是一项基本技能,并且在未来会变得更重要。
什么是编程
我们已经指出,计算机并不智能。它只是个按照清单一步步执行指令的单元。这个指令清单就是程序。编程,就是接受任务,将其分解成多个步骤,然后把它们用计算机可以理解的语言写下来。
树莓派可以理解多种语言,在本书中,你将学习到Python3——一种非常强大易学的语言。
本书适用于拥有树莓派并希望学些计算机编程的读者。学习本书不要求读者具有编程经验或者其他类似的技术。即便你只爱看漫画和科幻小说,都没关系,只要你具备前两个基本条件,这本书就是为你准备的。
读完本书,你将会对Python3有很深的理解,并且熟悉许多非常有用的模块(Python 附加模块)。通过Python3和这些模块,你将能控制树莓派的各个功能。你可以通过控制基本输入输出口(GPIO)使它和外界交互,或者用它连通互联网。拥有一个摄像头,你可以用树莓派拍照片,也可以制作游戏,操纵三维世界。简而言之,这是一本介绍如何发掘你的树莓派的全部潜力的图书。
什么是树莓派
树莓派是个用来学习编程的优秀设备。第一,它很便宜。价格差不多只有低端计算机的十分之一,作为你的主计算机的一个附件它非常便宜。由于程序员往往需要调试开发设备,而调试就有可能破坏某些东西,这就使树莓派显得很有用。通常来说,调试并不会破坏到设备本身,但是可能需要重装系统,这就有可能损失数据并且在几个小时内你都无法使用计算机。如果你有个树莓派,用它来编程,这些就不是问题。如果你的计算机需要和别人共享,使用树莓派就显得更重要。
第二,树莓派是个裸设备。它没有藏在盒子里或者在一个完整的系统中。这意味着你可以自己决定将其做成一个什么系统。你可以将其放到盒子里,也可以就让它裸着运行。你也可以使用GPIO,这在其他机器上是无法做到的。大多数计算机的用途都已经预先设计好了(如用来网上冲浪或者玩游戏的平板电脑,用来看电影或玩游戏的游戏终端,用来工作或玩游戏的笔记本电脑等)。而只要一点技术手段树莓派就可以做任何事情。
第三,树莓派使用Linux——一个类似于Windows或Mac OS X的操作系统。它提供了视窗系统和一个用来操控树莓派的基于文本的命令行接口。如果你之前没有使用过Linux,会发现它和你使用过的系统有点不同。对于崭露头角的程序员来说,最重要的区别就是Linux比其他系统更灵活。正如树莓派的物理设计崇尚体验一样,这个操作系统也是如此。
如何阅读本书
前3章介绍了如何在树莓派上使用Python。读完这3章后,你将对Python编程有个很好的认识。本书剩余部分将分章来介绍不同的应用,如游戏和多媒体。这些章节涉及Python的不同领域。因此前一章没有读完不会影响你对后一章的理解(有些时候,我们可能会引用前面的某些概念,但我们会在引用时标注清楚)。
这意味着你可以在读本书第二部分时自己决定阅读顺序。例如,如果你对多媒体很感兴趣,可以直接跳到这一章,之后再去读其他章节。
学习编程必须多动手实践。也就是说,仅仅坐下来读完本书是不够的。你必须去实践这些学到的东西。贯穿本书,我们设计了很多练习让你来实践所学到的知识。有时通过特定的练习来培养你的技能,有时你需要给我们介绍过的程序添加特性。编程的一个重要部分就是确定程序要完成什么的创造力。因此你不需要完全听从我们的建议。事实上,我们鼓励你把我们的建议和代码作为一个起点——一个开启你的数字艺术征程的起点。
致  谢 Acknowledgements
感谢大家帮助我完成此书。在Wiley公司,Kezia Ednsley和Craig smith从本书开始写作起就帮忙审稿。感谢Erin Zeltner,是他让本书的文字看起来更优美,也让排版更合理。
还有许多人需要感谢。没有编程环境就不会有这本关于编程的书。基于树莓派的Python包含了数以千计的程序员的工作,其中有很多人还是免费贡献。这些人都需要感谢,受限于篇幅,我们仅列出三位:Guido van Rossum、Linux Torvalds和Richard Stallman。
当然,软件需要运行在硬件之上,我们也要感谢Eben Upton和树莓派基金会。
本书中的任何错误都由作者独自承担。

上架指导

计算机\程序设计

封底文字

本书由树莓派基金会资深软件开发工程师亲笔撰写,是学习在树莓派上编程的必备手册。即使你没有任何编程经验,也可以畅游树莓派的世界。本书覆盖了初学编程者和第一次做Python开发所需的基础知识,书中首先对Python编程做了基本介绍,并给出了通用的Python代码,然后逐步介绍了:
·配置并开始Python编程
·使用变量、循环和函数
·学习3D图形编程
·使用PyGame
·编程“我的世界”游戏
·编写Python脚本
·理解传感器和GPIO
本书深入浅出地介绍每条命令,并辅以生动的例子和源代码,可以帮助你学习Python编程所需的各种知识和技能,是开启Python编程之旅的必备指南。
读者可以登录华章网站(www.hzbook.com)或访问http://www.wiley.com/go/pythonraspi下载本书源代码。

作者简介

(美)Alex Bradbury  Ben Everard 著:暂无简介

译者简介

王文峰 译:暂无简介

图书目录

前言
致谢
第1章 起航(启动和运行) 1
1.1 组装好你的树莓派 1
1.2 可能遇到的问题 2
1.3 树莓派快速指南 3
1.3.1 使用LXDE(轻量级X11桌面环境) 3
1.3.2 使用终端 4
1.3.3 通过Raspi-Config改变配置 6
1.3.4 安装软件 6
1.4 Python3 6
1.4.1 Python解释器 7
1.4.2 运行Python程序 7
1.5 小结 8
第2章 Python简介 9
2.1 使用Turtles绘画 9
2.1.1 使用循环 12
2.1.2 条件处理:if、elif和else 14
2.1.3 使用函数和方法组织代码 15
2.2 一个Python游戏:猫和老鼠 16
2.2.1 理解变量 19
2.2.2 定义函数 19
2.2.3 在游戏中循环 19
2.3 小结 20
第3章 Python基础 22
3.1 变量、值和类型 22
3.1.1 值和类型 23
3.1.2 数字排序 24
3.1.3 使用Strings保存文字 25
3.1.4 布尔值:真或假 25
3.1.5 数据类型转换 26
3.1.6 知识测试 26
3.2 在结构体中存储值 27
3.2.1 字典和集合中的非序列元素 30
3.2.2 知识测试 31
3.3 控制程序流程 32
3.3.1 用循环遍历数据 32
3.3.2 深入理解循环嵌套 33
3.3.3 使用if语句控制程序分支 34
3.3.4 捕获异常 35
3.4 使用函数复用代码 36
3.5 组合装配 38
3.6 使用类来构建对象 40
3.7 使用模块获得附加特性 45
3.8 小结 46
3.9 习题答案 47
第4章 图形编程 48
4.1 图形用户界面(GUI)编程 48
4.2 添加控制 50
4.3 创建Web浏览器 52
4.4 添加窗口菜单 60
4.5 小结 62
4.6 习题答案 62
第5章 搭建游戏 65
5.1 构建游戏 66
5.2 初始化PyGame 69
5.3 为角色创建世界 73
5.3.1 检测冲突 74
5.3.2 左右移动 76
5.3.3 达到目标 78
5.3.4 制造挑战 79
5.4 在游戏中加入自己的风格 83
5.5 添加音乐 83
5.6 添加布景 84
5.7 让游戏更上一层楼 87
5.8 逼真的游戏物理 87
5.9 小结 91
第6章 使用OpenGL创建图形 92
6.1 获取模块 93
6.2 创建旋转立方体 93
6.2.1 向量和矩阵 95
6.2.2 组合包装 98
6.2.3 增加光照 101
6.3 让屏幕起舞 107
6.3.1 建立3D模型 109
6.3.2 计算声音强度 110
6.4 继续完善 115
6.5 添加纹理 115
6.6 小结 116
第7章 Python与网络 117
7.1 理解主机、端口和套接字 117
7.1.1 使用IP地址定位计算机 117
7.1.2 搭建会话服务器 118
7.1.3 “推”向世界 121
7.1.4 使用JSON做天气预报 123
7.2 知识测验 125
7.3 走向网站 125
7.3.1 让网站动起来(动态网站) 127
7.3.2 使用模板 128
7.3.3 使用表格回传数据 129
7.4 安全 131
7.5 小结 134
7.6 习题答案 134
第8章 我的世界 137
8.1 畅游我的世界 138
8.1.1 控制我的世界 138
8.1.2 用Python创建我的世界 139
8.1.3 深入探索 142
8.2 制作贪吃蛇游戏 142
8.2.1 移动贪吃蛇 146
8.2.2 增长贪吃蛇 146
8.2.3 添加苹果 146
8.3 深入探索 147
8.4 小结 148
第9章 多媒体 149
9.1 使用PyAudio让计算机发声 149
9.1.1 录音 151
9.1.2 向树莓派讲话 151
9.1.3 向程序提问 152
9.1.4 组合包装 153
9.1.5 深入探索 155
9.2 制作电影 155
9.2.1 使用USB网络摄像头 155
9.2.2 使用OpenCV添加计算机图像特性 158
9.2.3 深入探索 160
9.2.4 使用树莓派摄像头模块 160
9.2.5 创建直播视频 162
9.2.6 深入探索 165
9.3 小结 165
第10章 脚本 166
10.1 从Linux命令行开始 166
10.1.1 使用subprocess模块 168
10.1.2 命令行标签 169
10.1.3 正则表达式 170
10.2 知识测验 173
10.3 脚本中的网络 174
10.4 组合包装 175
10.5 在Python中操作文件 180
10.6 小结 182
第11章 硬件接口 183
11.1 硬件设置选择 183
11.1.1 母转公接头 183
11.1.2 无焊面包板 184
11.1.3 成品板和万能板 185
11.1.4 PCB加工 185
11.2 辅助工具 185
11.2.1 剪线/剥线器 185
11.2.2 万用表 185
11.2.3 电烙铁 185
11.3 本章所需的硬件 186
11.3.1 第一个电路 186
11.3.2 保护树莓派 189
11.3.3 电源限制 190
11.3.4 获得输入 191
11.4 使用I2C、SPI和串口扩展GPIO 192
11.4.1 SPI通信协议 193
11.4.2 I2C通信协议 196
11.4.3 串口通信协议 196
11.5 深入研究 196
11.5.1 Arduino 197
11.5.2 PiFace 197
11.5.3 Gertboard 197
11.5.4 Wireless Inventor’s Kit 198
11.6 尝试一些流行工程 198
11.6.1 机器人 198
11.6.2 家庭自动化 198
11.6.3 防盗报警器 199
11.6.4 数字艺术 199
11.7 小结 199
第12章 测试与调试 200
12.1 通过打印变量调查故障 200
12.2 通过测试发现故障 203
12.2.1 使用单元测试检查代码片段 204
12.2.2 获得更多断言 207
12.2.3 使用测试集进行回归测试 209
12.2.4 测试整个程序包 210
12.2.5 保证软件可用性 210
12.3 究竟需要多少测试 211
12.4 小结 211

教学资源推荐
作者: [美] 艾伦 A. A. 多诺万(Alan A. A. Donovan),布莱恩 W. 柯尼汉(Brian W. Kernighan)著
作者: [美] 凯·霍斯特曼(Cay Horstmann) 著
作者: 汪同庆 关焕梅 汤洁
作者: 苏俊
参考读物推荐
作者: 郭鑫 顾彦玲 等编著
作者: [美] 马克·米凯利斯(Mark Michaelis) 著
作者: [美]马尔奇·哈弗贝克(Marijn Haverbeke)著
作者: (美)Kris Jamsa, Konrad King, Andy Anderson