第1章 Python语言概述和开发环境 1
1.1 Python简介 2
1.1.1 Python简史 2
1.1.2 Python的特点 3
1.2 Python程序运行机制 3
1.3 开发Python的准备 4
1.3.1 在Windows上安装Python 5
1.3.2 在Linux上安装Python 6
1.3.3 在Mac OS X上安装Python 7
1.4 第一个Python程序 8
1.4.1 编辑Python源程序 8
1.4.2 使用IDLE运行Python程序 8
1.4.3 使用命令行工具运行Python程序 9
1.5 交互式解释器 11
1.6 本章小结 12
本章练习 12
第2章 变量和简单类型 13
2.1 单行注释和多行注释 14
2.2 变量 15
2.2.1 Python是弱类型语言 15
2.2.2 使用print函数输出变量 16
2.2.3 变量的命名规则 17
2.2.4 Python的关键字和内置函数 18
2.3 数值类型 19
2.3.1 整型 19
2.3.2 浮点型 21
2.3.3 复数 21
2.4 字符串入门 22
2.4.1 字符串和转义字符 22
2.4.2 拼接字符串 23
2.4.3 repr和字符串 23
2.4.4 使用input和raw_input获取用户输入 24
2.4.5 长字符串 25
2.4.6 原始字符串 26
2.4.7 字节串(bytes) 26
2.5 深入使用字符串 28
2.5.1 转义字符 28
2.5.2 字符串格式化 29
2.5.3 序列相关方法 31
2.5.4 大小写相关方法 32
2.5.5 删除空白 33
2.5.6 查找、替换相关方法 34
2.5.7 分割、连接方法 35
2.6 运算符 36
2.6.1 赋值运算符 36
2.6.2 算术运算符 37
2.6.3 位运算符 39
2.6.4 扩展后的赋值运算符 42
2.6.5 索引运算符 42
2.6.6 比较运算符与bool类型 42
2.6.7 逻辑运算符 44
2.6.8 三目运算符 45
2.6.9 in运算符 46
2.6.10 运算符的结合性和优先级 46
2.7 本章小结 47
本章练习 47
第3章 列表、元组和字典 49
3.1 序列简介 50
3.1.1 Python的序列 50
3.1.2 创建列表和元组 50
3.2 列表和元组的通用用法 51
3.2.1 通过索引使用元素 51
3.2.2 子序列 51
3.2.3 加法 52
3.2.4 乘法 52
3.2.5 in运算符 53
3.2.6 长度、最大值和最小值 53
3.2.7 序列封包和序列解包 54
3.3 使用列表 55
3.3.1 创建列表 55
3.3.2 增加列表元素 56
3.3.3 删除列表元素 57
3.3.4 修改列表元素 58
3.3.5 列表的其他常用方法 59
3.4 使用字典 61
3.4.1 字典入门 61
3.4.2 创建字典 62
3.4.3 字典的基本用法 63
3.4.4 字典的常用方法 64
3.4.5 使用字典格式化字符串 67
3.5 本章小结 67
本章练习 67
第4章 流程控制 68
4.1 顺序结构 69
4.2 if分支结构 69
4.2.1 不要忘记缩进 70
4.2.2 不要随意缩进 72
4.2.3 不要遗忘冒号 73
4.2.4 if条件的类型 73
4.2.5 if分支的逻辑错误 74
4.2.6 if表达式 75
4.2.7 pass语句 75
4.3 断言 76
4.4 循环结构 76
4.4.1 while循环 77
4.4.2 使用while循环遍历列表和元组 78
4.4.3 for-in循环 79
4.4.4 使用for-in循环遍历列表和元组 79
4.4.5 使用for-in循环遍历字典 80
4.4.6 循环使用else 81
4.4.7 嵌套循环 83
4.4.8 for表达式 84
4.4.9 常用工具函数 86
4.5 控制循环结构 87
4.6 牛刀小试 90
4.7 本章小结 98
本章练习 98
第5章 函数和lambda表达式 101
5.1 函数入门 102
5.2 函数的参数 106
5.3 局部函数 118
5.4 函数的高级内容 119
5.5 局部函数与lambda表达式 122
5.6 本章小结 124
本章练习 124
第6章 类和对象 125
6.1 类和对象 126
6.2 方法 132
6.3 成员变量 137
6.4 隐藏和封装 142
6.5 类的继承 144
6.6 Python的动态性 149
6.7 多态 153
6.8 枚举类 156
6.9 本章小结 159
本章练习 159
第7章 异常处理 160
7.1 异常概述 161
7.2 异常处理机制 162
7.3 使用raise引发异常 171
7.4 Python的异常传播轨迹 175
7.5 异常处理规则 177
7.6 本章小结 179
本章练习 179
第8章 Python类的特殊方法 180
8.1 常见的特殊方法 181
8.2 与反射有关的属性和方法 186
8.3 与序列有关的特殊方法 189
8.4 生成器 193
8.5 运算符重载的特殊方法 197
8.6 本章小结 205
本章练习 205
第9章 模块和包 206
9.1 模块化编程 207
9.2 加载模块 212
9.3 使用包 219
9.4 查看模块内容 224
9.5 本章小结 226
本章练习 226
第10章 常见模块 227
10.1 sys 228
10.2 os模块 231
10.3 random 234
10.4 time 235
10.5 JSON支持 238
10.6 正则表达式 244
10.7 容器相关类 256
10.8 collections下的容器支持 265
10.9 函数相关模块 273
10.10 本章小结 283
本章练习 283
第11章 图形界面编程 285
11.1 Python的GUI库 286
11.2 Tkinter GUI编程的组件 287
11.3 布局管理器 293
11.4 事件处理 299
11.5 Tkinter常用组件 304
11.6 对话框(Dialog) 330
11.7 菜单 342
11.8 在Canvas中绘图 349
11.9 本章小结 371
本章练习 371
第12章 文件I/O 372
12.1 使用pathlib模块操作目录 373
12.2 使用os.path操作目录 379
12.3 使用fnmatch处理文件名匹配 380
12.4 打开文件 381
12.5 读取文件 383
12.6 写文件 391
12.7 os模块的文件和目录函数 393
12.8 使用tempfile模块生成临时文件和临时目录 398
12.9 本章小结 399
本章练习 400
第13章 数据库编程 401
13.1 Python数据库API简介 402
13.2 操作SQLite数据库 404
13.3 操作MySQL数据库 417
13.4 本章小结 427
本章练习 427
第14章 并发编程 428
14.1 线程概述 429
14.2 线程的创建和启动 431
14.3 线程的生命周期 434
14.4 控制线程 438
14.5 线程同步 440
14.6 线程通信 447
14.7 线程池 454
14.8 线程相关类 458
14.9 多进程 462
14.10 本章小结 470
本章练习 470
第15章 网络编程 471
15.1 网络编程的基础知识 472
15.2 Python的基本网络支持 474
15.3 基于TCP协议的网络编程 486
15.4 基于UDP协议的网络编程 500
15.5 电子邮件支持 505
15.6 本章小结 511
本章练习 512
第16章 文档和测试 513
16.1 使用pydoc生成文档 514
16.2 软件测试概述 519
16.3 文档测试 523
16.4 单元测试 525
16.5 使用PyUnit(unittest) 529
16.6 本章小结 540
本章练习 540
第17章 打包和发布 541
17.1 使用zipapp模块 542
17.2 使用PyInstaller生成可执行程序 544
17.3 本章小结 547
本章练习 547
第18章 合金弹头 548
18.1 合金弹头游戏简介 549
18.2 pygame简介 550
18.3 开发游戏界面组件 553
18.4 增加“角色” 566
18.5 合理绘制地图 575
18.6 增加音效 577
18.7 增加游戏场景 579
18.8 本章小结 583
本章练习 583
第19章 数据可视化 584
19.1 使用Matplotlib生成数据图 585
19.2 功能丰富的数据图 597
19.3 使用Pygal生成数据图 606
19.4 Pygal支持的常见数据图 609
19.5 处理数据 617
19.6 本章小结 629
本章练习 629
第20章 网络爬虫 630
20.1 安装Scrapy 631
20.2 使用爬虫爬取、分析招聘信息 634
20.3 处理反爬虫 646
20.4 本章小结 657
本章练习 657
部分章节仅保留至二级标题,完整目录请见本书。