代码编织梦想

第一部分 树莓派编程环境

第1章 配置树莓派 3

1.1 获取树莓派 3

1.1.1 了解树莓派的历史 3

1.1.2 为什么要学习用Python

在树莓派上进行编程 4

1.2 获取树莓派 5

1.3 哪些树莓派外围设备是必须的 6

1.3.1 microSD卡 6

1.3.2 电源 7

1.3.3 显示输出 8

1.3.4 键盘和鼠标 9

1.3.5 使用网线或者Wi-Fi

适配器 9

1.4 其他不错的外围设备 9

1.4.1 挑选一个外壳 10

1.4.2 移动电源 10

1.4.3 自供电USB集线器 11

1.5 决定如何购买外围设备 11

1.6 让你的树莓派正常工作 11

1.6.1 自己研究一下 11

1.6.2 安装软件 12

1.6.3 下载操作系统 12

1.6.4 移动NOOBS 13

1.6.5 连接外围设备 13

1.7 排除树莓派的故障 15

1.7.1 检查外设连接线 15

1.7.2 检查microSD卡 16

1.7.3 检查NOOBS的副本 16

1.7.4 检查显示器 16

1.7.5 检查你的外设 17

1.8 小结 17

1.9 Q&A 17

1.10 练习 17

1.10.1 问题 17

1.10.2 答案 18

第2章 认识Raspbian Linux发行版 19

2.1 了解Linux 19

2.2 使用Raspbian命令行 20

2.3 使用Raspbian图形用户界面 23

2.4 LXDE图形界面 24

LXPanel 25

2.5 小结 29

2.6 Q&A 29

2.7 练习 29

2.7.1 问题 29

2.7.2 答案 30

第3章 搭建编程环境 31

3.1 探索Python 31

3.1.1 Python简史 31

3.1.2 Python v3和Python v2 32

3.2 检查你的Python环境 32

3.2.1 检查Python解释器和

交互式shell 32

3.2.2 检查Python开发环境 33

3.2.3 检查文本编辑器 33

3.3 安装Python和工具 34

检查键盘 34

3.4 关于Python解释器 35

3.5 关于Python交互式shell 36

3.6 关于Python开发环境shell 38

IDLE开发环境shell 39

3.7 创建Python脚本 42

3.7.1 在交互式shell中运行

Python脚本 43

3.7.2 在IDLE中运行Python

脚本 43

3.7.3 使用IDLE创建一个

脚本 44

3.7.4 使用文本编辑器创建一个

Python脚本 45

3.8 使用适当的工具 46

3.9 小结 47

3.10 Q&A 47

3.11 练习 47

3.11.1 问题 47

3.11.2 答案 48

第二部分 Python编程基础

第4章 Python基础 51

4.1 Python脚本的输出 51

4.1.1 探索print函数 51

4.1.2 使用字符作为print的

参数 52

4.1.3 格式化print函数的输出 53

4.1.4 使用转义序列控制输出 54

4.1.5 好玩的东西 55

4.2 格式化脚本 56

4.2.1 长文本行 56

4.2.2 创建注释 57

4.3 理解Python变量 58

4.3.1 Python关键字 58

4.3.2 创建Python变量名 59

4.4 给Python变量赋值 59

4.4.1 格式化变量和字符串

输出 60

4.4.2 避免使用未赋值的变量 61

4.4.3 将长字符串赋值给变量 61

4.4.4 给变量赋予更多

类型的值 62

4.4.5 给变量重新赋值 62

4.5 关于Python数据类型 63

4.6 获取用户输入 64

4.7 小结 69

4.8 Q&A 69

4.9 练习 69

4.9.1 问题 69

4.9.2 答案 70

第5章 在程序中使用算术 71

5.1 使用数学运算符 71

5.1.1 Python数学操作符 71

5.1.2 运算符的优先级 73

5.1.3 在数学运算中使用变量 74

5.1.4 浮点数的精度 75

5.1.5 显示数字 75

5.1.6 运算符缩写 76

5.2 使用分数进行计算 76

5.2.1 分数对象 76

5.2.2 分数操作 77

5.3 使用复数 77

5.3.1 创建复数 77

5.3.2 复数运算 78

5.4 math模块的高级功能 78

5.4.1 数值函数 79

5.4.2 幂和对数函数 79

5.4.3 三角函数 80

5.4.4 双曲函数 80

5.4.5 统计数学函数 81

5.5 使用NumPy数学库 81

5.5.1 NumPy数据类型 81

5.5.2 创建NumPy数组 82

5.5.3 使用NumPy数组 83

5.6 小结 83

5.7 Q&A 84

5.8 练习 84

5.8.1 问题 84

5.8.2 答案 85

第6章 控制你的程序 86

6.1 使用if语句 86

6.2 组合多条语句 87

6.3 通过else语句添加其他条件 89

6.4 使用elif添加更多的条件 91

6.5 在Python中比较值 93

6.5.1 数字比较 93

6.5.2 字符串比较 94

6.5.3 布尔值比较 95

6.5.4 评估函数返回值 95

6.6 检查复杂的条件 97

6.6.1 使用逻辑运算符 97

6.6.2 组合条件检查 97

6.7 对条件检查取反 98

6.8 小结 98

6.9 Q&A 99

6.10 练习 99

6.10.1 问题 99

6.10.2 答案 100

第7章 循环 102

7.1 执行重复的任务 102

7.2 使用for循环进行迭代 102

7.2.1 遍历列表中的数字 103

7.2.2 注意一些“陷阱” 104

7.2.3 由值指定的数据类型 105

7.2.4 遍历字符串列表 106

7.2.5 使用变量进行遍历 107

7.2.6 使用range函数进行

迭代 107

7.3 使用while循环 111

7.3.1 使用数字条件来进行

迭代 111

7.3.2 使用字符串作为判断

条件进行遍历 112

7.3.3 使用while True 113

7.4 创建嵌套循环 116

7.5 小结 117

7.6 Q&A 117

7.7 练习 118

7.7.1 问题 118

7.7.2 答案 118

第三部分 高级Python知识

第8章 使用列表和元组 123

8.1 关于元组 123

8.1.1 创建元组 123

8.1.2 访问元组中的数据 124

8.1.3 访问一个范围内的值 125

8.1.4 使用元组 125

8.2 关于列表 127

8.2.1 创建一个列表 127

8.2.2 从列表中获取数据 128

8.2.3 使用列表 128

8.3 使用多维列表存储数据 133

8.4 在脚本中使用列表和元组 133

8.4.1 遍历一个列表或元组 133

8.4.2 排序和倒序 134

8.5 使用列表解析创建列表 134

8.6 关于range类型 135

8.7 小结 136

8.8 Q&A 136

8.9 练习 136

8.9.1 问题 136

8.9.2 答案 137

第9章 字典和集合 138

9.1 理解Python字典 138

9.2 字典基础 139

9.2.1 创建一个字典 139

9.2.2 填充字典 139

9.2.3 获取字典中的数据 140

9.2.4 更新一个字典 142

9.2.5 管理一个字典 143

9.3 用字典编程 143

9.4 理解Python集合 148

9.5 集合基础 149

填充集合 149

9.6 从集合获取信息 150

9.6.1 集合成员 150

9.6.2 并集 150

9.6.3 交集 151

9.6.4 差集 151

9.6.5 对称差集 152

9.6.6 遍历集合 152

9.7 修改一个集合 153

9.8 用集合编程 154

9.9 小结 157

9.10 Q&A 157

9.11 练习 157

9.11.1 问题 157

9.11.2 答案 158

第10章 使用字符串 159

10.1 字符串的基础知识 159

10.1.1 字符串格式 159

10.1.2 创建字符串 160

10.1.3 处理字符串 161

10.2 使用函数操作字符串 162

10.2.1 改变字符串值 162

10.2.2 分割字符串 163

10.2.3 连接字符串 163

10.2.4 测试字符串 164

10.2.5 查找字符串 165

10.3 格式化字符串输出 166

10.3.1 format()函数 167

10.3.2 格式化数字 168

10.4 小结 170

10.5 Q&A 171

10.6 练习 171

10.6.1 问题 171

10.6.2 答案 171

第11章 使用文件 173

11.1 理解Linux文件结构 173

看一下Linux目录 174

11.2 通过Python管理文件和

目录 175

11.3 打开文件 176

11.3.1 指定打开模式 177

11.3.2 使用文件对象方法 178

11.4 读取文件 179

11.4.1 读取整个文件 179

11.4.2 逐行读取文件 180

11.4.3 不按顺序读取文件 181

11.5 关闭一个文件 185

11.6 写文件 185

11.6.1 创建并且写入一个

新文件 185

11.6.2 写入到已有的文件 188

11.7 小结 190

11.8 Q&A 190

11.9 练习 190

11.9.1 问题 190

11.9.2 答案 191

第12章 创建函数 192

12.1 在程序中使用Python函数 192

12.1.1 创建函数 193

12.1.2 使用函数 193

12.2 返回值 195

12.3 给函数传值 196

12.3.1 传递参数 196

12.3.2 设置参数的默认值 198

12.3.3 处理可变数量的参数 199

12.3.4 使用字典检索值 200

12.4 在函数中处理变量 201

12.4.1 局部变量 201

12.4.2 全局变量 202

12.5 在函数中使用列表 203

12.6 递归函数 204

12.7 小结 205

12.8 Q&A 205

12.9 练习 206

12.9.1 问题 206

12.9.2 答案 206

第13章 使用模块 207

13.1 介绍模块概念 207

13.2 探索标准模块 209

13.3 学习Python模块 210

13.4 创建定制的模块 214

13.4.1 创建或收集函数放到

一起 214

13.4.2 确定模块的名称 214

13.4.3 在测试目录中创建

自定义模块 215

13.4.4 测试自定义模块 215

13.4.5 将模块移动到生产

目录 216

13.4.6 检查路径,如果需要则

修改 218

13.4.7 测试生产级别自定义

模块 219

13.5 小结 222

13.6 Q&A 222

13.7 练习 222

13.7.1 问题 222

13.7.2 答案 223

第14章 探索面向对象编程的世界 224

14.1 理解面向对象编程基础 224

14.1.1 什么是OOP 224

14.1.2 定义一个类 225

14.1.3 创建一个实例 225

14.1.4 默认属性值 226

14.2 定义类方法 227

14.2.1 设值方法 227

14.2.2 访问方法 228

14.2.3 添加辅助方法 229

14.3 使用类模块共享你的代码 233

14.4 小结 235

14.5 Q&A 235

14.6 练习 235

14.6.1 问题 235

14.6.2 答案 236

第15章 使用继承 237

15.1 了解类的问题 237

15.2 理解子类和继承 238

15.3 在Python中使用继承 239

15.3.1 创建子类 240

15.3.2 将子类添加到对象

模块文件中 241

15.3.3 添加其他子类 242

15.3.4 将子类方法放到它自己的

对象模块文件中 243

15.4 在Python脚本中使用继承 244

15.5 小结 254

15.6 Q&A 255

15.7 练习 255

15.7.1 问题 255

15.7.2 答案 256

第16章 正则表达式 257

16.1 什么是正则表达式 257

16.1.1 定义正则表达式 257

16.1.2 正则表达式的类型 258

16.2 在Python中使用正则表达式 258

16.3 match()函数 259

16.4 search()函数 259

16.5 findall()函数和finditer()函数 259

16.6 定义基本的模式 261

16.6.1 纯文本 261

16.6.2 特殊字符 262

16.6.3 锚字符 262

16.6.4 点字符 264

16.6.5 字符分类 264

16.6.6 字符分类取反 266

16.6.7 使用范围 266

16.6.8 星号 267

16.7 使用高级正则表达式特性 267

16.7.1 问号 268

16.7.2 加号 268

16.7.3 使用大括号 268

16.7.4 管道符号 269

16.7.5 分组表达式 269

16.8 在Python脚本中使用正则

表达式 269

16.9 小结 271

16.10 Q&A 272

16.11 练习 272

16.11.1 问题 272

16.11.2 答案 273

第17章 异常处理 274

17.1 理解异常 274

17.1.1 语法错误异常 274

17.1.2 运行时错误异常 276

17.2 处理异常 278

17.3 处理多个异常 280

17.3.1 创建多个try except

语句块 282

17.3.2 处理通用的异常 284

17.3.3 理解try except语句的

选项 285

17.4 小结 290

17.5 Q&A 290

17.6 练习 290

17.6.1 问题 290

17.6.2 答案 291

第四部分 图形化编程

第18章 GUI编程 295

18.1 为GUI环境编程 295

18.1.1 视窗接口 295

18.1.2 事件驱动编程 296

18.2 Python的GUI包 297

18.3 使用tkinter包 297

18.3.1 创建一个窗口 297

18.3.2 向窗口添加控件 299

18.3.3 定义事件处理程序 302

18.4 tkinter控件 304

18.4.1 使用Label控件 304

18.4.2 添加Button控件 304

18.4.3 使用Checkbutton控件 304

18.4.4 使用Entry控件 306

18.4.5 添加Text控件 307

18.4.6 使用ListBox控件 309

18.4.7 使用Menu控件 310

18.5 小结 313

18.6 Q&A 313

18.7 练习 313

18.7.1 问题 313

18.7.2 答案 314

第19章 游戏编程 315

19.1 理解游戏编程 315

19.2 了解游戏相关的工具 316

19.3 配置PyGame库 317

检查PyGame 317

19.4 使用PyGame 317

19.4.1 加载和初始化PyGame 319

19.4.2 配置游戏屏幕 320

19.4.3 在游戏画面中放置

文本 321

19.5 学习PyGame的更多内容 324

19.5.1 一直在游戏中 324

19.5.2 绘制图像和形状 325

19.5.3 在游戏中使用声音 327

19.6 处理PyGame动作 328

19.6.1 在游戏画面中移动图形 328

19.6.2 与游戏画面中的图形

交互 329

19.7 小结 336

19.8 Q&A 336

19.9 练习 336

19.9.1 问题 336

19.9.2 答案 337

第五部分 业务编程

第20章 使用网络 341

20.1 查找Python的网络模块 341

20.2 与邮件服务器一起工作 342

20.2.1 Linux世界中的邮件 342

20.2.2 smtplib库 344

20.2.3 使用smtplib库 345

20.3 与网页服务器一起工作 348

20.3.1 获取网页 348

20.3.2 解析网页数据 349

20.4 使用套接字编程连接应用

程序 352

20.4.1 什么是套接字编程 353

20.4.2 Python的socket模块 353

20.4.3 创建服务器程序 354

20.4.4 创建客户端程序 356

20.4.5 运行客户端/服务器

示例 357

20.5 小结 358

20.6 Q&A 358

20.7 练习 358

20.7.1 问题 358

20.7.2 答案 359

第21章 在程序中使用数据库 361

21.1 使用MySQL数据库 361

21.1.1 安装MySQL 361

21.1.2 配置MySQL环境 362

21.1.3 安装Python的MySQL

模块 366

21.1.4 创建Python脚本 367

21.2 使用PostgreSQL数据库 370

21.2.1 安装PostgreSQL 370

21.2.2 配置PostgreSQL环境 370

21.2.3 安装Python的

PostgreSQL模块 373

21.2.4 用psycopg2编写

代码 374

21.3 小结 376

21.4 Q&A 376

21.5 练习 376

21.5.1 问题 376

21.5.2 答案 377

第22章 Web编程 379

22.1 在树莓派上运行Web服务器 379

22.1.1 安装Apache Web

服务器 380

22.1.2 提供HTML文件 381

22.2 公共网关接口编程 382

22.2.1 什么是CGI 382

22.2.2 运行Python程序 382

22.3 扩展Python网页 384

22.3.1 格式化输出 384

22.3.2 使用动态网页 385

22.3.3 调试Python程序 387

22.4 处理表单 389

22.4.1 创建网页表单 390

22.4.2 cgi模块 391

22.5 小结 393

22.6 Q&A 394

22.7 练习 394

22.7.1 问题 394

22.7.2 答案 395

第六部分 树莓派Python项目

第23章 创建基础的树莓派Python

项目 399

23.1 思考基础的树莓派Python

项目 399

23.2 通过Python显示高清

图片 399

23.2.1 理解高分辨率 400

23.2.2 使用脚本演示图像 401

23.2.3 配置演示画面 402

23.2.4 查找图片 402

23.2.5 在可移动的驱动器上

存储照片 403

23.2.6 缩放照片 406

23.2.7 照片居中 407

23.2.8 照片取景 407

23.2.9 提高演示速度 409

23.2.10 潜在的脚本修改 414

23.3 播放音乐 415

23.3.1 创建基本的音乐脚本 415

23.3.2 将音乐存储在可移动的

硬盘上 416

23.3.3 使用音乐播放列表 416

23.3.4 控制回放 417

23.3.5 让播放列表随机播放 421

23.3.6 创建一个特殊的

演示 422

23.4 小结 426

23.5 Q&A 426

23.6 练习 426

23.6.1 问题 426

23.6.2 答案 427

第24章 树莓派/Python高级项目 428

24.1 探索GPIO接口 428

24.1.1 什么是GPIO接口 428

24.1.2 GPIO引脚布局 429

24.1.3 连接GPIO 430

24.2 使用RPi.GPIO模块 433

24.2.1 安装RPi.GPIO 433

24.2.2 启动方法 433

24.3 控制GPIO输出 434

24.3.1 配置硬件来查看GPIO

输出 434

24.3.2 测试GPIO输出 436

24.3.3 闪烁LED 437

24.3.4 创建一个花式的

闪光灯 437

24.4 检测GPIO输入 438

24.4.1 配置检测输入的

硬件 438

24.4.2 处理输入信号 440

24.4.3 输入轮询 441

24.4.4 输入事件 442

24.5 小结 444

24.6 Q&A 444

24.7 练习 444

24.7.1 问题 444

24.7.2 答案 445

第七部分 附录

附录A 将Raspbian操作系统加载到

SD卡上 449

A.1 下载NOOBS 450

A.2 验证NOOBS校验和 451

A.2.1 在Linux上检查校验和 451

A.2.2 在Windows上检查

校验和 451

A.2.3 在OS X上检查

校验和 452

A.3 解压缩NOOBS Zip文件 452

A.3.1 在Linux上解压缩一个

ZIP文件 452

A.3.2 在Windows上解压缩

一个ZIP文件 453

A.3.3 在OS X上解压缩一个

ZIP文件 453

A.4 格式化MicroSD卡 453

A.4.1 在Linux上格式化

一个MicroSD卡 453

A.4.2 在Windows上格式化

一个MicroSD卡 455

A.4.3 在OS X上格式化一个

microSD卡 455

A.5 将NOOBS复制到一个MicroSD

卡中 456

附录B 树莓派型号一览 457

B.1 树莓派2 B型号 457

B.2 树莓派1 B+型号 458

B.3 树莓派1 A+型号 458

B.4 较早的树莓派型号 459

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_39686048/article/details/109619679