产品特色
编辑推荐
获取树莓派并且选择一些合适的低成本外设。
配置Raspian Linux系统,并且设置Python编程环境。
学习Python基础知识,包括算术和结构化命令。
掌握Python 3的列表、元组、字典、集合、字符串、文
件和模块。
通过函数在多个地方重用Python代码。
使用正则表达式高效操作字符串。
实践简单的面向对象编程技术。
使用异常处理让你的代码更可靠。
使用树莓派和OpenGL编写现代图形用户界面。
使用PyGame库创建树莓派游戏。
学习可以在商业软件中应用的网络、Web和数据库技术。
编写Python脚本来发送邮件。
通过树莓派的GPIO接口与其他设备交互。
完成一个树莓派示例工程,激励你了解更多内容。
内容简介
树莓派是一个只有信用卡大小的裸露电路板,它也是一个运行开源Linux操作系统的完全可编程的PC系统。树莓派的官方编程语言是Python,本书介绍了树莓派的Python编程方法。
本书共分7个部分。前6个部分介绍了树莓派编程环境、Python编程基础、高级Python知识、图形化编程、业务编程和树莓派Python项目;第7部分通过附录介绍了如何将Raspbian加载到SD卡上,并介绍了树莓派的各种版本和型号。
本书适合对Python编程感兴趣的读者和树莓派爱好者,也适合想要基于低成本Linux平台开发应用的用户。
作者简介
Richard Blum拥有超过25年的系统和网络管理的经验。
他编写了很多关于Li n ux和开源方面的书籍,并且他还是一个
网页编程和Li n ux课程的在线讲师,他的课程被美国各地的大
学使用。他的书籍包括《Ubuntu Linux Secrets》《Linux for
Dummies, 9th Edition》《PostgreSQL 8 for Windows》以及
《Professional Linux Programming》。
Christine Bresnahan作为系统管理员已有超过25年的工
作经验。现在她是常青藤技术社区学院的兼职教授,她教Python
编程、Linux系统管理以及计算机安全。她是《Linux Bible,8th
E d i t i on》的合著者,并且她和Bl um一起共同创作了《Linux
Command Line & Shell Scripting Bible, Second Edition》。
目录
目录
第一部分 树莓派编程环境
第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
前言/序言
《代码炼金术:Python的奇妙旅程》 引言 在这个信息爆炸的时代,编程语言如同解锁数字世界的神奇钥匙,而Python,凭借其简洁优雅的语法和强大的生态系统,已然成为最受欢迎的入门级语言之一。它不仅仅是指令的堆砌,更是思维逻辑的具象化,是创造力的无限延伸。《代码炼金术:Python的奇妙旅程》并非一本枯燥的技术手册,而是一次充满探索与发现的旅程,旨在带领读者从零开始,逐步领略Python的魅力,并掌握将奇思妙想转化为实际应用的炼金术。本书将引导您穿越代码的迷宫,发现隐藏在数据背后的秘密,并亲手构建属于自己的数字奇迹。 第一章:启程——Python世界的初识 想象一下,您将拥有一双能够与计算机对话的眼睛,而Python,就是这双眼睛最温柔的语言。在本章,我们将首先为您勾勒出Python的宏伟蓝图:它为何如此特别,为何能在众多编程语言中脱颖而出?我们将一同了解Python的诞生故事,它所代表的“人生苦短,我用Python”的哲学,以及它在各个领域——从Web开发到数据科学,从人工智能到自动化办公——所扮演的关键角色。 接着,我们将踏上安装Python的征途。这并非一个充满门槛的挑战,而是我们构建数字世界的基石。我们将提供清晰、循序渐进的指导,无论您使用的是Windows、macOS还是Linux系统,都能轻松完成Python运行环境的搭建。我们将介绍两种主要的Python版本(Python 2和Python 3),并解释为何我们选择专注于更现代、功能更强大的Python 3。 代码编辑器(IDE)的选择,是旅途中至关重要的一步。它将是您挥洒创意的画布,是您与Python互动的乐园。我们将深入探讨几款备受欢迎的代码编辑器,如PyCharm、VS Code、Sublime Text等,分析它们的优缺点,并提供详细的安装和配置指南,帮助您找到最适合自己的“魔法杖”。 最后,我们将敲下您在Python世界的第一个“Hello, World!”。这一刻,您将感受到代码的力量,理解指令如何转化为输出,体验到编程的即时反馈。我们将详细解析这简单一行代码的每一个组成部分,让您明白“print()”函数背后的逻辑,为接下来的奇幻旅程奠定坚实的基础。 第二章:基石——Python的核心语法 任何伟大的建筑都离不开坚固的地基,Python的语法便是支撑您构建复杂程序的基石。在本章,我们将深入探索Python的“语法糖”,让您轻松掌握语言的精髓。 我们将从最基本的“数据类型”开始。变量,如同容器,承载着各式各样的数据。您将学习整数(int)、浮点数(float)、字符串(str)和布尔值(bool)等基本数据类型,理解它们各自的特点和应用场景。我们将通过生动的例子,讲解如何声明变量、如何进行赋值,以及为何变量命名如此重要。 “运算符”是连接数据、执行计算的桥梁。我们将一同探究算术运算符(+,-,,/,%,//,)、比较运算符(==, !=, >, <, >=, <=)、逻辑运算符(and, or, not)以及赋值运算符。您将学会如何利用这些运算符进行数值计算、条件判断以及逻辑组合,为后续的程序控制打下基础。 “控制流”则是赋予程序生命力的关键。程序不再是简单的顺序执行,而是能够根据条件做出判断,能够重复执行任务。我们将详细讲解“条件语句”(if, elif, else),让您的程序能够“思考”和“决策”。您将学会如何通过条件来控制程序的走向,实现不同的功能。 接着,我们将进入“循环语句”的殿堂。您将掌握“for”循环和“while”循环。您将理解如何利用它们来批量处理数据,如何执行重复性的任务,例如遍历列表、计算累加值等。我们将通过丰富的实例,演示循环在实际编程中的强大威力,让您能够高效地处理海量信息。 “数据结构”是组织和管理数据的有力工具。您将学习Python中最核心的几种数据结构:列表(list)、元组(tuple)、字典(dictionary)和集合(set)。我们将深入剖析它们的特性,例如列表的可变性、元组的不可变性、字典的键值对存储以及集合的唯一性。您将学会如何创建、访问、修改和删除这些数据结构中的元素,为处理复杂数据打下坚实基础。 第三章:函数——代码的模块化与复用 随着您编写的代码越来越长,您会发现重复的代码段如同杂草般滋生。函数,正是解决这一问题的“魔术棒”,它能将零散的代码组织成有意义的单元,实现“一次编写,处处调用”。 在本章,我们将揭秘函数的奥秘。您将学习如何“定义”函数,为其赋予名称,并指定它接收的“参数”。我们将深入讲解函数的“返回值”,理解函数如何将计算结果“交”给调用者。 我们将探讨函数的可变参数(args 和 kwargs),让您的函数更加灵活,能够处理不定数量的参数。您将理解“局部变量”和“全局变量”的区别,以及它们的作用域,确保您的数据管理井井有条。 函数的“递归”是另一项强大的技能。您将学会如何通过函数调用自身来解决复杂问题,例如计算阶乘、生成斐波那契数列等。我们将通过清晰的图示和循序渐进的讲解,让您掌握递归的精髓。 “模块”和“包”是Python生态系统中组织代码的宏观架构。您将学习如何将相关的函数和类组织到模块中,并通过“import”语句在其他文件中引用,实现代码的“模块化”。我们将介绍Python的标准库,以及如何安装和使用第三方库,让您的代码库不断壮大。 第四章:面向对象——构建更强大的程序 想象一下,您不再只是编写一系列指令,而是能够创造“对象”,这些对象拥有自己的属性和行为。这就是面向对象编程(OOP)的魅力,它让我们的程序更加结构化、易于维护和扩展。 在本章,我们将带领您步入面向对象的世界。您将学习“类”(Class)的概念,它如同蓝图,定义了一类对象的共同特征。您将学习如何创建“对象”(Instance),也就是类的具体实例。 我们将深入讲解面向对象编程的四大支柱: 封装 (Encapsulation):我们将学习如何将数据(属性)和操作数据的方法(行为)捆绑在一起,形成一个独立的单元。这将有助于保护数据的完整性,并简化程序的管理。 继承 (Inheritance):您将学会如何创建一个新类(子类),使其继承另一个类(父类)的属性和方法。这能极大地减少代码重复,并促进代码的重用。 多态 (Polymorphism):我们将探索如何让不同的对象对同一个消息做出不同的响应。这将使您的程序更加灵活和可扩展。 抽象 (Abstraction):您将了解如何隐藏复杂的实现细节,只暴露必要的接口。这将帮助您专注于程序的逻辑,而不是沉溺于底层细节。 您将学习如何定义类变量和实例变量,如何编写构造函数(`__init__`)来初始化对象,以及如何定义类方法和实例方法。通过实际案例,您将体会到面向对象编程在构建大型、复杂系统中的强大之处。 第五章:文件与异常——与外界的交互 程序并非孤立存在,它需要与文件进行交互,需要处理可能出现的错误。在本章,我们将学习如何让您的程序具备“感知”和“应对”能力。 您将学习如何“读写文件”。我们将介绍如何打开和关闭文件,如何以不同的模式(读取、写入、追加)操作文件。您将学会如何读取文件的全部内容,如何逐行读取,以及如何将数据写入文件。我们将通过实例,演示如何在程序中保存和加载数据。 “异常处理”是健壮程序不可或缺的一部分。您将学习“try-except”块,理解如何捕获和处理程序运行时可能出现的错误,例如文件不存在、除以零等。您将学会如何优雅地应对异常,避免程序崩溃,并向用户提供有用的错误信息。 我们将介绍常见的异常类型,例如`FileNotFoundError`、`ZeroDivisionError`、`TypeError`等,并演示如何针对性地处理它们。通过掌握异常处理,您的程序将变得更加稳定和可靠。 第六章:实践出真知——小型项目实战 理论知识的掌握最终需要通过实践来巩固和升华。《代码炼金术:Python的奇妙旅程》深知这一点,因此本章将是您将所学知识转化为实际应用的“试验田”。 我们将从一些简单但有趣的小项目开始。您将有机会亲手编写一个“猜数字游戏”,让您练习随机数生成、循环和条件判断。您将挑战一个“简单的计算器”,巩固算术运算和用户输入处理。 随着您信心的增长,我们将引入更具挑战性的项目。您可能需要编写一个“联系人管理系统”,学习如何使用字典来存储和管理信息,并实现添加、删除、查找联系人的功能。您甚至可以尝试构建一个“简单的文本编辑器”,进一步锻炼文件读写和字符串处理能力。 每一个项目都将提供清晰的步骤分解、关键代码示例和思考题,鼓励您独立思考和解决问题。您将在这个过程中,不仅仅是学习代码,更是培养解决问题的能力,体验到创造的乐趣。 结语 《代码炼金术:Python的奇妙旅程》旨在为您打开一扇通往Python世界的大门,让您在轻松愉快的氛围中,掌握编程的精髓。从基础语法到面向对象,从文件操作到异常处理,您将一步步构建起自己的编程知识体系。这不仅仅是一本书,更是一段赋能您的旅程,让您能够运用Python这门强大的语言,将您的想法转化为现实,在这个数字时代,创造属于自己的精彩。愿您在这段旅程中,点燃创意的火花,成为一名真正的“代码炼金术士”!