第1章 安装和运行Python 1
1.1 认识操作系统 1
1.2 在Windows上安装Python 2
1.2.1 安装Python 3
1.2.2 运行Python 3
1.2.3 安装文本编辑器 4
1.2.4 浏览文件系统 4
1.3 在Mac OS上安装Python 6
1.3.1 安装Python 6
1.3.2 运行Python 6
1.3.3 安装文本编辑器 7
1.3.4 浏览文件系统 7
1.4 小结 9
1.5 Q&A 9
1.6 作业 9
1.6.1 问题 9
1.6.2 回答 9
1.6.3 练习 10
第2章 在Python中使用数字 11
2.1 用变量存储信息 11
2.1.1 变量的类型 11
2.1.2 在变量中存储数字 12
2.1.3 命名变量 13
2.1.4 提示 13
2.2 在Python中做数学运算 14
2.2.1 运算符 14
2.2.2 运算的优先级 14
2.2.3 数学运算的组合类型 15
2.2.4 除以0 15
2.3 比较数字 16
2.4 在现实世界中应用Python数学运算 16
2.5 小结 17
2.6 Q&A 17
2.7 作业 18
2.7.1 问题 18
2.7.2 回答 18
2.7.3 练习 18
第3章 编程中的逻辑 19
3.1 使用基本的if语句 19
3.2 创建代码块 20
3.3 为if添加else 21
3.4 用elif测试更多内容 22
3.5 True和False变量 22
3.6 使用try/except避免错误 23
3.7 在现实世界的问题中应用逻辑 24
3.8 小结 25
3.9 Q&A 25
3.10 作业 26
3.10.1 问题 26
3.10.2 回答 26
3.10.3 练习 26
第4章 在字符串中存储文本 27
4.1 创建字符串 27
4.2 打印字符串 28
4.3 获取有关字符串的信息 28
4.4 数学运算和比较运算 29
4.4.1 连接字符串 30
4.4.2 乘法 30
4.4.3 较字符串 30
4.4.4 适用于字符串的运算符 31
4.5 格式化字符串 31
4.5.1 用转义符控制间隔 31
4.5.2 删除空格 32
4.5.3 查找和替换文本 33
4.6 在现实世界中使用字符串 34
4.7 小结 34
4.8 Q&A 35
4.9 作业 35
4.9.1 问题 35
4.9.2 回答 35
4.9.3 练习 36
第5章 处理输入和输出 37
5.1 从命令行获取信息 37
5.1.1 提示 39
5.1.2 转换输入 39
5.2 获取密码 40
5.3 清理用户的输入 41
5.4 格式化输出 41
5.5 在现实世界中管理输入和输出 43
5.6 小结 44
5.7 Q&A 44
5.8 作业 44
5.8.1 问题 44
5.8.2 回答 45
5.8.3 练习 45
第6章 将项分组到列表中 46
6.1 创建列表 46
6.2 获取有关列表的信息 48
6.3 操作列表 48
6.4 在列表中使用数学运算 49
6.5 排序列表 50
6.6 比较列表 50
6.7 在现实世界中使用列表 51
6.8 小结 52
6.9 Q&A 52
6.10 作业 52
6.10.1 问题 52
6.10.2 回答 52
6.10.3 练习 53
第7章 使用循环重复代码 54
7.1 重复一定次数 54
7.1.1 获取数字的范围 54
7.1.2 命名循环变量 55
7.1.3 遍历列表 56
7.1.4 跳到下一个列表项 56
7.1.5 跳出循环 57
7.2 只有为真时重复 58
7.2.1 While循环 58
7.2.2 无限循环 58
7.3 在现实世界中使用循环 59
7.4 小结 60
7.5 Q&A 60
7.6 作业 61
7.6.1 测验 61
7.6.2 回答 61
7.6.3 练习 61
第8章 创建简单的脚本 63
8.1 创建一个基本的函数 63
8.2 传递值给函数 64
8.2.1 设置默认值 65
8.2.2 返回值 66
8.3 函数中的变量的作用域 67
8.3.1 在函数内创建变量 67
8.3.2 参数和作用域 68
8.4 在函数中组织函数 68
8.5 传递可变数目的参数 69
8.6 在现实世界中使用函数 70
8.7 小结 71
8.8 Q&A 71
8.9 作业 72
8.9.1 问题 72
8.9.2 回答 73
8.9.3 练习 73
第9章 使用字典匹配键和值 74
9.1 创建字典 74
9.2 获取有关字典的信息 76
9.3 比较字典 77
9.4 在现实世界中使用字典 77
9.5 小结 79
9.6 Q&A 79
9.7 作业 79
9.7.1 问题 79
9.7.2 回答 80
9.7.3 练习 80
第10章 生成对象 81
10.1 面向对象编程 81
10.1.1 已经使用的对象 82
10.1.2 对象 82
10.1.3 术语 83
10.2 规划一个对象 84
10.3 从对象生成对象 85
10.4 在现实世界中使用对象 86
10.5 小结 87
10.6 Q&A 87
10.7 作业 87
10.7.1 问题 87
10.7.2 回答 87
10.7.3 练习 88
第11章 生成类 89
11.1 生成一个基类的声明 89
11.2 为类增加方法 90
11.3 创建类的实例 91
11.3.1 __init__()函数 91
11.3.2 移动和存储实例 93
11.4 在现实世界中使用类 94
11.5 小结 96
11.6 Q&A 96
11.7 作业 96
11.7.1 问题 96
11.7.2 回答 96
11.7.3 练习 97
第12章 扩展类以添加功能 98
12.1 内建附加功能 98
12.1.1 相等性 99
12.1.2 大于和小于 100
12.1.3 操作打印 101
12.2 类的继承 102
12.2.1 把类保存到一个文件中 102
12.2.2 子类化一个类 103
12.2.3 使用类 104
12.3 在现实世界中使用扩展类 105
12.4 小结 107
12.5 Q&A 107
12.6 作业 107
12.6.1 问题 107
12.6.2 回答 107
12.6.3 练习 107
第13章 使用Python的模块来添加功能 109
13.1 Python包 109
13.2 使用random模块 110
13.2.1 randint 110
13.2.2 random 111
13.2.3 uniform 112
13.2.4 choice 112
13.3 使用datetime模块 112
13.3.1 time 113
13.3.2 datetime 113
13.4 找到更多的模块 114
13.5 在现实世界中使用模块 114
13.6 小结 115
13.7 Q&A 115
13.8 作业 116
13.8.1 问题 116
13.8.2 回答 116
13.8.3 练习 116
第14章 分拆程序 118
14.1 为什么要分拆程序 118
14.2 决定如何分拆代码 119
14.2.1 规划分拆一个程序 119
14.2.2 分拆一个音乐库程序 119
14.3 Python查找一个程序的代码 121
14.3.1 通过文件目录包含模块 121
14.3.2 导入模块 122
14.4 在现实世界中分拆代码 123
14.5 小结 125
14.6 Q&A 125
14.7 作业 125
14.7.1 问题 125
14.7.2 回答 125
14.7.3 练习 125
第15章 为代码提供文档 127
15.1 好的文档的必要性 127
15.2 在代码中嵌入注释 128
15.3 用docstring说明代码 129
15.4 包含README文件和安装文件 131
15.4.1 编写安装说明 132
15.4.2 编写README文件 133
15.5 在现实世界中使用文档 133
15.6 小结 134
15.7 Q&A 134
15.8 作业 135
15.8.1 问题 135
15.8.2 回答 135
15.8.3 练习 135
第16章 操作程序文件 136
16.1 读写文件 136
16.1.1 从文件读取数据 136
16.1.2 把数据写入到文件中 137
16.1.3 添加数据到文件 138
16.2 创建文件 139
16.3 获取目录的信息 139
16.3.1 文件列表 139
16.3.2 在目录间移动 140
16.3.3 创建目录 141
16.4 获取文件的信息 142
16.4.1 文件大小 42
16.4.2 访问时间 142
16.5 在现实世界中使用文件 143
16.6 小结 144
16.7 Q&A 144
16.8 作业 144
16.8.1 问题 144
16.8.2 回答 144
16.8.3 练习 145
第17章 用JSON来共享信息 146
17.1 JSON格式 146
17.2 使用JSON文件 148
17.2.1 把JSON保存到文件中 148
17.2.2 把JS0N打印到屏幕 149
17.3 把对象保存为JSON 150
17.4 创建定制的字典 151
17.5 在现实世界中使用JSON 152
17.6 小结 155
17.7 Q&A 155
17.8 作业 155
17.8.1 问题 156
17.8.2 回答 156
17.8.3 练习 156
第18章 把信息保存到数据库 157
18.1 为什么使用数据库 157
18.2 使用SQL和数据库交互 158
18.2.1 MacOS系统中的SQLite 158
18.2.2 在Windows系统中安装SQLite 158
18.2.3 测试SQLite 159
18.3 创建一个数据库 159
18.3.1 创建一个表 160
18.3.2 添加数据 161
18.4 查询数据库 162
18.5 在现实世界中使用数据库 163
18.6 小结 165
18.7 Q&A 165
18.8 作业 165
18.8.1 问题 166
18.8.2 回答 166
18.8.3 练习 166
第19章 使用SQL从数据库获取更多信息 167
19.1 用WHERE进行过滤 168
19.1.1 判断相等性 168
19.1.2 判断不相等性 168
19.1.3 用LIKE查找相似的项 169
19.1.4 使用NOT LIKE去查找不相似的项 170
19.1.5 带大于和小于的查询 170
19.2 用ORDERBY排序 171
19.3 用DISTINCT获取唯一的项 171
19.4 用UPDATE修改记录 172
19.5 用DELETE删除记录 172
19.6 在现实世界中使用SQL 173
19.7 小结 176
19.8 Q&A 176
19.9 作业 176
19.9.1 问题 176
19.9.2 回答 177
19.9.3 练习 177
第20章 用Flask进行Web开发 178
20.1 什么是Flask 178
20.2 安装Flask 179
20.2.1 Windows 180
20.2.2 MAC 181
20.3 创建第一个Flask应用 182
20.3.1 添加另一个视图 184
20.3.2 添加变量 184
20.4 添加模板 184
20.4.1 使用HTML 185
20.4.2 创建模板 186
20.4.3 用Jinja添加动态内容 187
20.4.4 为模板添加逻辑 188
20.5 在现实世界中使用框架 189
20.6 小结 190
20.7 Q&A 190
20.8 作业 190
20.8.1 问题 191
20.8.2 回答 191
20.8.3 练习 191
第21章 用PyGame开发游戏 192
21.1 什么是PyGame 192
21.2 安装PyGame 193
21.2.1 Windows 193
21.2.2 Mac 193
21.3 创建屏幕 194
21.3.1 主程序循环 194
21.3.2 使用用户输入(事件) 195
21.4 创建形状 195
21.4.1 添加颜色 196
21.4.2 定义一个圆 196
21.5 在屏幕上移动物体 197
21.6 获取用户输入 199
21.7 绘制文本 200
21.8 在现实世界中使用 201
PyGame 201
21.9 小结 204
21.10 Q&A 204
21.11 作业 205
21.11.1 问题 205
21.11.2 回答 205
21.11.3 练习 205
第22章 通过版本控制来正确地保存代码 206
22.1 什么是版本控制 206
22.1.1 为什么版本控制很重要 206
22.1.2 版本控制是如何工作的 207
22.2 使用Git和GitHub进行版本控制 208
22.2.1 加入GitHub 208
22.2.2 GitHub快速教程 208
22.2.3 安装Git 209
22.3 管理仓库中的代码 209
22.3.1 创建一个仓库 209
22.3.2 签出仓库 210
22.3.3 向仓库中添加项 210
22.3.4 推送到远程的仓库 211
22.3.5 获取更新 212
22.4 用分支做实验性更改 213
22.4.1 创建分支 213
22.4.2 合并分支 214
22.5 决定哪些内容不推送 215
22.6 小结 215
22.7 Q&A 216
22.8 作业 216
22.8.1 问题 216
22.8.2 回答 216
22.8.3 练习 216
第23章 修复问题代码 218
23.1 当代码中有了Bug 218
23.2 用traceback来找到错误 219
23.3 用pdb调试器查找错误 220
23.4 通过互联网查询解决方案 222
23.5 尝试一个修复 223
23.6 寻求外部支持 223
23.6.1 互联网中继聊天 223
23.6.2 本地用户组 225
23.6.3 邮件列表 225
23.7 小结 225
23.8 Q&A 225
23.9 作业 226
23.9.1 问题 226
23.9.2 回答 226
23.9.3 练习 226
第24章 学习Python的下一步 227
24.1 感兴趣的项目 227
24.1.1 创建Web站点和Web应用程序 227
24.1.2 创建桌面应用 228
24.1.3 创建Android和iOS应用程序 229
24.1.4 游戏开发竞赛 229
24.1.5 科学和数学中的Python 229
24.1.6 创造更好的工作环境 229
24.2 参加会议 230
24.3 使用Linux 230
24.4 为Python做贡献 231
24.5 为其他的项目贡献 231
24.6 学习另一种语言 232
24.7 展望Python3 232
24.8 推荐阅读 232
24.9 推荐的Web站点 233
24.10 小结 233
24.11 Q&A 233
24.12 作业 234
24.12.1 问题 234
24.12.2 回答 234
24.12.3 练习 234