第1章 Python起步走 1
1.1 认识Python 2
1.1.1 Python 3的诞生 2
1.1.2 从Python 3.0到3.5 3
1.1.3 初识Python的社区资源 5
1.2 建立Python环境 6
1.2.1 Python的实现 6
1.2.2 下载与安装Python 3.5 8
1.2.3 认识安装的内容 10
1.3 重点复习 12
第2章 从REPL到IDE 14
2.1 从′Hello World′开始 15
2.1.1 使用REPL 15
2.1.2 编写Python源码 18
2.1.3 哈啰!世界! 20
2.2 初识模块与软件包 23
2.2.1 模块简介 23
2.2.2 设置PYTHONPATH 25
2.2.3 使用软件包管理模块 27
2.2.4 使用import as与from import 28
2.3 使用IDE 29
2.3.1 下载、安装PyCharm 29
2.3.2 IDE项目管理基础 31
2.4 重点复习 35
第3章 类型与运算符 36
3.1 内建类型 37
3.1.1 数值类型 37
3.1.2 字符串类型 39
3.1.3 群集类型 45
3.2 变量与运算符 50
3.2.1 变量 50
3.2.2 加减乘除运算 52
3.2.3 比较与赋值运算 56
3.2.4 逻辑运算 57
3.2.5 位运算 58
3.2.6 索引切片运算 60
3.3 重点复习 62
课后练习 64
第4章 流程语句与函数 65
4.1 流程语句 66
4.1.1 if分支判断 66
4.1.2 while循环 68
4.1.3 for in迭代 70
4.1.4 pass、break、continue 72
4.1.5 for Comprehension 72
4.2 定义函数 74
4.2.1 使用def定义函数 75
4.2.2 参数与自变量 76
4.2.3 一级函数的运用 79
4.2.4 lambda表达式 83
4.2.5 初探变量作用域 84
4.2.6 yield与yield from 87
4.3 重点复习 90
课后练习 91
第5章 从模块到类 93
5.1 模块管理 94
5.1.1 用模块建立抽象层 94
5.1.2 管理模块名称 96
5.1.3 设置PTH文件 99
5.2 初识面向对象 101
5.2.1 定义类 101
5.2.2 定义方法 102
5.2.3 定义内部属性 105
5.2.4 定义外部属性 106
5.3 类语法的细节 108
5.3.1 绑定与未绑定方法 108
5.3.2 静态方法与类方法 110
5.3.3 属性命名空间 111
5.3.4 定义运算符 114
5.3.5 _new_()、_init_()与_del_() 116
5.4 重点复习 118
课后练习 120
第6章 类的继承 121
6.1 何谓继承 122
6.1.1 继承共同行为 122
6.1.2 鸭子类型 124
6.1.3 重新定义方法 125
6.1.4 定义抽象方法 126
6.2 继承语法的细节 128
6.2.1 初识object与super() 128
6.2.2 Rich comparison方法 130
6.2.3 使用enum枚举 132
6.2.4 多重继承 134
6.2.5 创建ABC(抽象基类) 136
6.2.6 探讨super() 138
6.3 文档与软件包资源 141
6.3.1 DocStrings 142
6.3.2 查询官方文档 145
6.3.3 PyPI与pip 146
6.4 重点复习 147
课后练习 148
第7章 例外处理 149
7.1 语法与继承结构 150
7.1.1 使用try、except 150
7.1.2 例外继承结构 153
7.1.3 引发(raise)例外 155
7.1.4 Python例外风格 159
7.1.5 认识堆栈追踪 160
7.1.6 提出警告信息 163
7.2 例外与资源管理 165
7.2.1 使用else、finally 165
7.2.2 使用with as 167
7.2.3 实现上下文管理器 169
7.3 重点复习 172
课后练习 173
第8章 open()与io模块 175
8.1 使用open()函数 176
8.1.1 file与mode参数 176
8.1.2 buffering、encoding、errors、newlines参数 180
8.1.3 stdin、stdout、stderr 181
8.2 高级文件处理 183
8.2.1 认识文件描述符 183
8.2.2 认识io模块 185
8.3 重点复习 188
课后练习 189
第9章 数据结构 190
9.1 hashable、iterable与orderable 191
9.1.1 hashable协议 191
9.1.2 iterable协议 193
9.1.3 orderable协议 196
9.2 高级群集处理 199
9.2.1 认识群集结构 199
9.2.2 使用collection模块 201
9.2.3 _getitem_()、_setitem_()、_delitem_() 208
9.2.4 使用collection.abc模块 209
9.2.5 UserList、UserDict、UserString类 211
9.3 重点复习 211
课后练习 213
第10章 数据持续性与交换 214
10.1 对象序列化 215
10.1.1 使用pickle模块 215
10.1.2 使用shelve模块 217
10.2 数据库的处理 219
10.2.1 认识DB-API 20 219
10.2.2 使用sqlite3模块 220
10.2.3 参数化SQL语句 222
10.2.4 简介交易 223
10.3 数据交换格式 227
10.3.1 CSV 227
10.3.2 JSON 231
10.3.3 XML 235
10.4 重点复习 239
课后练习 240
第11章 常用内建模块 241
11.1 日期与时间 242
11.1.1 时间的度量 242
11.1.2 年历与时区简介 243
11.1.3 使用time模块 245
11.1.4 使用datetime模块 247
11.2 日志 251
11.2.1 简介Logger 251
11.2.2 使用Handler、Formatter与Filter 253
11.2.3 使用logging.config 255
11.3 正则表达式 258
11.3.1 正则表达式简介 258
11.3.2 Pattern与Match对象 263
11.4 文件与目录 266
11.4.1 使用os模块 266
11.4.2 使用os.path模块 268
11.4.3 使用glob模块 270
11.5 重点复习 272
课后练习 273
第12章 调试、测试与性能 274
12.1 调试 275
12.1.1 认识Debugger 275
12.1.2 使用pdb模块 277
12.2 测试 281
12.2.1 使用assert断言 281
12.2.2 编写doctest 283
12.2.3 使用unittest单元测试 286
12.3 性能 288
12.3.1 timeit模块 288
12.3.2 使用cProfile(profile) 290
12.4 重点复习 292
课后练习 293
第13章 并发与并行 294
13.1 并发 295
13.1.1 线程简介 295
13.1.2 线程的启动与停止 297
13.1.3 竞争、锁定、死锁 300
13.1.4 等待与通知 303
13.2 并行 307
13.2.1 使用subprocess模块 307
13.2.2 使用multiprocessing模块 309
13.3 重点复习 312
课后练习 313
第14章 高级主题 314
14.1 属性控制 315
14.1.1 描述器 315
14.1.2 定义_slots_ 318
14.1.3 _getattribute_()、_getattr_()、_setattr_()、_delattr_() 320
14.2 装饰器 321
14.2.1 函数装饰器 321
14.2.2 类装饰器 324
14.2.3 方法装饰器 327
14.3 Meta类 328
14.3.1 认识type类 328
14.3.2 指定metaclass 330
14.3.3 __abstractmethods__ 332
14.4 相对导入 333
14.5 重点复习 335
课后练习 336
附录A venv 337
附录B Django简介 339