内容简介
第一部分 树莓派编程环境
第1章 配置树莓派
1.1 树莓派是什么
1.1.1 树莓派的历史
1.1.2 为什么要学习用Python在树莓派上进行编程
1.2 获取树莓派
1.3 哪些树莓派外设是必须的
1.3.1 SD卡
1.3.2 电源
1.3.3 显示输出
1.3.4 键盘
1.4 其他不错的外设
1.4.1 挑选一个外壳
1.4.2 使用USB鼠标
1.4.3 自供电USB集线器
1.4.4 使用网线或者无线适配器
1.5 决定如何购买外设
1.6 让你的树莓派正常工作
1.6.1 自己研究一下
1.6.2 选择操作系统
1.6.3 下载操作系统
1.6.4 将操作系统部署到SD卡上
1.6.5 连接外设
1.7 排除树莓派的故障
1.7.1 检查外设连接线
1.7.2 检查SD卡
1.7.3 检查你的操作系统镜像
1.7.4 检查你的外设
1.8 总结
1.9 Q&A
1.10 练习
1.10.1 问题
1.10.2 答案
第2章 认识Raspbian Linux发行版
2.1 了解Linux
2.2 使用Raspbian命令行
2.3 使用Raspbian图形用户界面
2.3.1 LXDE图形界面
2.3.2 LXPanel
2.4 总结
2.5 Q&A
2.6 练习
2.6.1 问题
2.6.2 答案
第3章 搭建编程环境
3.1 探索Python
3.1.1 Python简史
3.1.2 Python v3和Python v2
3.2 检查你的Python环境
3.2.1 检查Python解释器和交互式shell
3.2.2 检查Python开发环境
3.2.3 检查文本编辑器
3.3 安装Python和工具
3.4 关于Python解释器
3.5 关于Python交互式shell
3.6 关于Python开发环境shell
3.7 创建Python脚本
3.7.1 在交互式shell里运行Python脚本
3.7.2 使用IDLE创建一个脚本
3.7.3 使用文本编辑器创建一个Python脚本
3.8 使用适当的工具
3.9 总结
3.10 Q&A
3.11 练习
3.11.1 问题
3.11.2 答案
第二部分 Python基础知识
第4章 Python基础
4.1 脚本的输出
4.1.1 探索print函数
4.1.2 使用字符作为print的参数
4.1.3 格式化print函数的输出
4.1.4 使用转义序列控制输出
4.1.5 好玩的东西
4.2 格式化脚本
4.2.1 长文本行
4.2.2 创建注释
4.3 理解Python变量
4.3.1 Python关键字
4.3.2 创建Python变量名
4.4 Python变量进行赋值
4.4.1 格式化变量和字符串输出
4.4.2 避免使用未赋值的变量
4.4.3 将长字符串赋值给变量
4.4.4 给变量赋予更多类型的值
4.4.5 给变量重新赋值
4.5 关于Python数据类型
4.6 获取用户输入
4.7 总结
4.8 Q&A
4.9 练习
4.9.1 问题
4.9.2 答案
第5章 在程序中使用算术
5.1 使用数学运算符
5.1.1 Python数学操作符
5.1.2 运算符的优先级
5.1.3 在数学运算中使用变量
5.1.4 浮点数的精度
5.1.5 显示数字
5.1.6 运算符缩写
5.2 使用分数
5.2.1 分数对象
5.2.2 分数操作
5.3 使用复数
5.3.1 创建实数
5.3.2 复数运算
5.4 math模块的高级功能
5.4.1 数值函数
5.4.2 幂和对数函数
5.4.3 三角函数
5.4.4 双曲函数
5.4.5 统计数学函数
5.5 使用NumPy数学库
5.5.1 NumPy数据类型
5.5.2 创建NumPy数组
5.5.3 使用NumPy数组
5.6 总结
5.7 Q&A
5.8 练习
5.8.1 问题
5.8.2 答案
第6章 控制你的程序
6.1 使用if语句
6.2 组合多个语句
6.3 通过else语句添加其他条件
6.4 使用elif添加更多的条件
6.5 在Python中比较值
6.5.1 数字比较
6.5.2 字符串比较
6.5.3 列表和元组比较
6.5.4 布尔值比较
6.5.5 评估函数返回值
6.6 检查复杂的条件
6.6.1 使用逻辑运算符
6.6.2 组合条件检查
6.7 对条件检查取反
6.8 总结
6.9 Q&A
6.10 练习
6.10.1 问题
6.10.2 答案
第7章 循环
7.1 执行重复的任务
7.2 使用for循环进行迭代
7.2.1 遍历列表中的数字
7.2.2 注意一些“陷阱”
7.2.3 由值指定的数据类型
7.2.4 遍历字符串列表
7.2.5 使用变量进行遍历
7.2.6 使用range函数进行迭代
7.3 使用while循环
7.3.1 使用字符串作为判断条件进行遍历
7.3.2 使用while True
7.4 创建嵌套循环
7.5 总结
7.6 Q&A
7.7 练习
7.7.1 问题
7.7.2 答案
第三部分 高级Python
第8章 使用列表和元组
8.1 关于元组
8.1.1 创建元组
8.1.2 访问元组中的数据
8.1.3 访问一个范围内的值
8.1.4 使用元组
8.2 关于列表
8.2.1 创建一个列表
8.2.2 使用列表解析
8.2.3 从列表中获取数据
8.2.4 使用列表
8.3 使用多维列表存储数据
8.4 在脚本中使用列表和元组
8.4.1 遍历一个列表或元组
8.4.2 排序和倒序再
8.5 使用列表解析创建列表
8.6 关于range类型
8.7 总结
8.8 Q&A
8.9 练习
8.9.1 问题
8.9.2 答案
第9章 字典和集合
9.1 理解Python字典
9.2 字典基础
9.2.1 创建一个字典
9.2.2 填充字典
9.2.3 更新一个字典
9.2.4 管理一个字典
9.3 用字典编程
9.4 理解Python集合
9.5 集合基础
9.6 从集合获取信息
9.6.1 集合成员
9.6.2 并集
9.6.3 交集
9.6.4 差集
9.6.5 对称差集
9.6.6 遍历集合
9.7 修改一个集合
9.8 用集合编程
9.9 总结
9.10 Q&A
9.11 练习
9.11.1 问题
9.11.2 答案
第10章 使用字符串
10.1 字符串的基础知识
10.1.1 字符串格式
10.1.2 创建字符串
10.1.3 处理字符串
10.2 使用函数操作字符串
10.2.1 改变字符串值
10.2.2 分割字符串
10.2.3 连接字符串
10.2.4 测试字符串
10.2.5 检索字符串
10.3 格式化字符串输出
10.3.1 format()函数
10.3.2 格式化数字
10.4 总结
10.5 Q&A
10.6 练习
10.6.1 问题
10.6.2 答案
第11章 使用文件
11.1 理解Linux文件结构
11.1.1 看一下Linux目录
11.1.2 通过Python管理文件和目录
11.2 打开文件
11.2.1 指定打开模式
11.2.2 使用文件对象方法
11.3 读取文件
11.3.1 读取整个文件
11.3.2 逐行读取文件
11.3.3 不按顺序读取文件
11.4 关闭一个文件
11.5 写文件
11.5.1 创建并且写入一个新文件
11.5.2 写入到已存在的文件
11.6 总结
11.7 Q&A
11.8 练习
11.8.1 问题
11.8.2 答案
第12章 创建函数
12.1 在程序中使用Python函数
12.1.1 创建函数
12.1.2 使用函数
12.2 返回值
12.3 给函数传值
12.3.1 传递参数
12.3.2 设置默认参数值
12.3.3 处理可变数量的参数
12.3.4 使用字典检索值
12.4 在函数中处理变量
12.4.1 局部变量
12.4.2 全局变量
12.5 在函数中使用列表
12.6 递归函数
12.7 总结
12.8 Q&A
12.9 练习
12.9.1 问题
12.9.2 答案
第13章 使用模块
13.1 介绍模块概念
13.2 探索标准模块
13.3 学习Python模块
13.4 创建定制的模块
13.4.1 创建或收集函数放到一起
13.4.2 确定模块的名称
13.4.3 在测试目录中创建这个自定义模块
13.4.4 测试自定义模块
13.4.5 将模块移动到生产目录
13.4.6 检查路径,如果需要则修改
13.4.7 测试生产级别自定义模块
13.5 总结
13.6 Q&A
13.7 练习
13.7.1 问题
13.7.2 答案
第14章 探索面向对象编程的世界
14.1 理解面向对象编程基础
14.1.1 什么是OOP
14.1.2 定义一个类
14.1.3 创建一个实例
14.1.4 默认属性值
14.2 定义类方法
14.2.1 设值方法
14.2.2 访问方法
14.2.3 添加辅助方法
14.3 使用类模块共享你的代码
14.4 总结
14.5 Q&A
14.6 练习
14.6.1 问题
14.6.2 答案
第15章 使用继承
15.1 了解类的问题
15.2 理解子类和继承
15.3 在Python中使用继承
15.3.1 创建子类
15.3.2 将子类添加到对象模块文件中
15.3.3 添加其他子类
15.3.4 将子类方法放到它自己的对象模块文件中
15.4 在Python脚本中使用继承
15.5 总结
15.6 Q&A
15.7 练习
15.7.1 问题
15.7.2 答案
第16章 正则表达式
16.1 什么是正则表达式
16.1.1 定义正则表达式
16.1.2 正则表达式的类型
16.2 在Python中使用正则表达式
16.2.1 正则表达式函数
16.2.2 编译正则表达式
16.3 定义基本的模式
16.3.1 纯文本
16.3.2 特殊字符
16.3.3 锚字符
16.3.4 点字符
16.3.5 字符分类
16.3.6 字符类取反
16.3.7 使用范围
16.3.8 星号
16.4 使用高级正则表达式特性
16.4.1 问号
16.4.2 加号
16.4.3 使用大括号
16.4.4 管道符号
16.4.5 分组表达式
16.5 在Python脚本中使用正则表达式
16.6 总结
16.7 Q&A
16.8 练习
16.8.1 问题
16.8.2 答案
第17章 异常处理
17.1 理解异常
17.1.1 语法错误异常
17.1.2 运行时错误异常
17.2 处理异常
17.3 处理多个异常
17.3.1 创建多个try except语句块
17.3.2 处理通用的异常
17.3.3 理解try except语句的选项
17.4 总结
17.5 Q&A
17.6 练习
17.6.1 问题
17.6.2 答案
第四部分 图形编程
第18章 GUI编程
18.1 为GUI环境编程
18.1.1 视窗接口
18.1.2 事件驱动编程
18.2 检查Python的GUI包
18.3 使用tkinter包
18.3.1 创建一个窗口
18.3.2 向窗口添加控件
18.3.3 定义事件处理程序
18.4 探索tkinter控件
18.4.1 使用Label控件
18.4.2 添加Button控件
18.4.3 使用Checkbutton控件
18.4.4 使用Entry控件
18.4.5 添加Text控件
18.4.6 使用ListBox控件
18.4.7 使用Menu控件
18.5 总结
18.6 Q&A
18.7 练习
18.7.1 问题
18.7.2 答案
第19章 游戏编程
19.1 理解游戏编程
19.2 学习游戏相关的框架和库
19.3 配置PyGame库
19.3.1 检查PyGame
19.3.2 安装PyGame
19.3.3 确保你的系统是最新的
19.3.4 安装构建Python模块的工具
19.3.5 获取PyGame的源码
19.3.6 安装额外的软件包
19.3.7 构建和安装PyGame
19.3.8 使用PyGame
19.3.9 加载和初始化PyGame
19.3.10 配置游戏屏幕
19.3.11 向游戏画面中放置文本
19.4 学习PyGame的更多内容
19.4.1 一直在游戏中
19.4.2 绘制图像和形状
19.4.3 在游戏中使用声音
19.5 处理PyGame动作
19.5.1 在游戏画面中移动图形
19.5.2 与游戏画面中的图形交互
19.6 总结
19.7 Q&A
19.8 练习
19.8.1 问题
19.8.2 答案
第五部分 业务编程
第20章 使用网络
20.1 寻找Python的网络模块
20.2 与邮件服务器一起工作
20.2.1 Linux世界中的邮件
20.2.2 smtplib库
20.2.3 使用smtplib库
20.3 与网页服务器一起工作
20.3.1 获取网页
20.3.2 解析网页数据
20.4 使用套接字编程连接应用程序
20.4.1 什么是套接字编程
20.4.2 Python的socket模块
20.4.3 创建服务器程序
20.4.4 创建客户端程序
20.4.5 运行客户端/服务器示例
20.5 总结
20.6 Q&A
20.7 练习
20.7.1 问题
20.7.2 答案
第21章 在程序中使用数据库
21.1 使用MySQL数据库
21.1.1 安装MySQL
21.1.2 配置MySQL环境
21.1.3 安装Python的MySQL模块
21.1.4 创建Python脚本
21.2 使用PostgreSQL数据库
21.2.1 安装PostgreSQL
21.2.2 配置PostgreSQL环境
21.2.3 安装Python的PostgreSQL模块
21.2.4 用psycopg2编写代码
21.3 总结
21.4 Q&A
21.5 练习
21.5.1 问题
21.5.2 答案
第22章 Web编程
22.1 在树莓派上运行Web服务器
22.1.1 安装Apache Web服务器
22.1.2 提供HTML文件
22.2 公共网关接口编程
22.2.1 什么是CGI
22.2.2 运行Python程序
22.3 扩展Python网页
22.3.1 格式化输出
22.3.2 使用动态网页
22.3.3 调试Python程序
22.4 处理表单
22.4.1 创建网页表单
22.4.2 cgi模块
22.5 总结
22.6 Q&A
22.7 练习
22.7.1 问题
22.7.2 答案
第六部分 树莓派Python项目
第23章 创建基础的树莓派Python工程
23.1 思考基础的树莓派Python工程
23.2 通过Python显示高清图片
23.2.1 理解高分辨率
23.2.2 使用脚本演示图像
23.2.3 配置演示画面
23.2.4 查找图片
23.2.5 在可移动的驱动器上存储照片
23.2.6 缩放照片
23.2.7 照片取景
23.2.8 居中照片
23.2.9 提高演示速度
23.2.10 潜在的脚本修改
23.3 播放音乐
23.3.1 创建基本的音乐脚本
23.3.2 将音乐存储在可移动的硬盘上
23.3.3 使用音乐播放列表
23.3.4 控制回放
23.3.5 让播放列表随机播放
23.4 创建一个特殊的演示
23.5 总结
23.6 Q&A
23.7 练习
23.7.1 问题
23.7.2 答案
第24章 树莓派/Python高级项目
24.1 探索GPIO接口
24.1.1 什么是GPIO接口
24.1.2 GPIO引脚布局
24.1.3 连接GPIO
24.2 使用RPi.GPIO模块
24.2.1 安装RPi.GPIO
24.2.2 启动方法
24.3 控制GPIO输出
24.3.1 配置硬件来查看GPIO输出
24.3.2 测试GPIO输出
24.3.3 闪烁LED
24.3.4 创建一个花式的闪光灯
24.4 检测GPIO输入
24.4.1 配置检测输入的硬件
24.4.2 处理输入信号
24.4.3 输入轮询
24.4.4 输入事件
24.5 总结
24.6 Q&A
24.7 练习
24.7.1 问题
24.7.2 答案
第七部分 附录
附录将Raspbian操作系统加载到SD卡上
Windows:将Raspbian加载到SD卡上
Linux:将Raspbian加载到SD卡上到SD卡上
Mac:将Raspbian加载到SD卡上