第1章 走进Python……………………… 1
1.1 Python编程语言概述………………… 1
1.1.1 Python的历史… …………………… 1
1.1.2 Python的设计哲学与应用范围… … 2
1.1.3 Python 2和Python 3… ……………… 4
1.2 学好Python的建议…………………… 5
1.2.1 Python语言的特点… ……………… 5
1.2.2 如何学习Python?… ……………… 6
1.3 Python官方文档……………………… 7
1.4 常用软件……………………………… 7
1.5 Python开发社区……………………… 8
第2章 安装和运行Python……………… 9
2.1 在Windows上安装Python…………… 9
2.1.1 安装Python… ……………………… 10
2.1.2 运行Python… ……………………… 11
第1章 走进Python……………………… 1
1.1 Python编程语言概述………………… 1
1.1.1 Python的历史… …………………… 1
1.1.2 Python的设计哲学与应用范围… … 2
1.1.3 Python 2和Python 3… ……………… 4
1.2 学好Python的建议…………………… 5
1.2.1 Python语言的特点… ……………… 5
1.2.2 如何学习Python?… ……………… 6
1.3 Python官方文档……………………… 7
1.4 常用软件……………………………… 7
1.5 Python开发社区……………………… 8
第2章 安装和运行Python……………… 9
2.1 在Windows上安装Python…………… 9
2.1.1 安装Python… ……………………… 10
2.1.2 运行Python… ……………………… 11
2.1.3 安装文本编辑器…………………… 12
2.2 在Mac上安装Python… ……………… 15
2.2.1 安装Python… ……………………… 15
2.2.2 运行Python… ……………………… 16
2.2.3 安装文本编辑器…………………… 16
2.3 在Linux上安装Python… …………… 18
2.3.1 安装Python… ……………………… 18
2.3.2 运行Python… ……………………… 19
2.4 小结…………………………………… 20
第3章 小试Python…………………… 21
3.1 开始Python编程……………………… 21
3.1.1 数字………………………………… 21
3.1.2 字符串……………………………… 23
3.1.3 列表………………………………… 28
3.2 其他常见类型………………………… 29
3.2.1 字面量……………………………… 29
3.2.2 布尔类型…………………………… 29
3.2.3 常量………………………………… 30
3.3 运算符………………………………… 30
3.3.1 算术运算符………………………… 30
3.3.2 比较运算符………………………… 31
3.3.3 赋值运算符………………………… 32
3.3.4 位运算符…………………………… 34
3.3.5 逻辑运算符………………………… 34
3.3.6 关键字in和is… …………………… 35
3.4 表达式………………………………… 36
3.5 小结…………………………………… 36
3.6 知识拓展……………………………… 36
3.6.1 运算符优先级……………………… 36
3.6.2 注释………………………………… 37
第4章 数据结构… …………………… 38
4.1 通用序列操作………………………… 38
4.1.1 索引………………………………… 38
4.1.2 切片………………………………… 40
4.1.3 序列相加…………………………… 50
4.1.4 序列重复…………………………… 51
4.1.5 成员资格…………………………… 52
4.1.6 长度、 小值、 大值和求和…… 54
4.2 列表…………………………………… 55
4.2.1 列表 新…………………………… 55
4.2.2 增加元素…………………………… 56
4.2.3 删除元素…………………………… 58
4.2.4 查找元素…………………………… 60
4.2.5 队列的其他操作…………………… 61
4.3 元组…………………………………… 62
4.3.1 定义元组…………………………… 62
4.3.2 删除元组…………………………… 63
4.3.3 元组的其他操作…………………… 64
4.4 字典…………………………………… 65
4.4.1 定义字典…………………………… 65
4.4.2 使用字典…………………………… 66
4.4.3 字典的其他操作…………………… 68
4.5 小结…………………………………… 74
4.6 知识拓展……………………………… 74
4.6.1 集合………………………………… 74
4.6.2 列表推导式、字典推导式和集合
推导式……………………………… 77
第5章 流程控制… …………………… 79
5.1 if判断… ……………………………… 79
5.1.1 if语句… …………………………… 79
5.1.2 else语句… ………………………… 83
5.1.3 elif语句……………………………… 83
5.2 循环…………………………………… 85
5.2.1 while循环…………………………… 85
5.2.2 for循环……………………………… 86
5.2.3 break和continue语句… …………… 90
5.3 小结…………………………………… 91
5.4 知识拓展……………………………… 91
5.4.1 pass语句… ………………………… 91
5.4.2 循环语句中的else… ……………… 94
第6章 函 数… ……………………… 97
6.1 函数的概念…………………………… 97
6.2 函数的定义…………………………… 97
6.3 函数参数……………………………… 98
6.3.1 必须参数…………………………… 99
6.3.2 关键字参数 ……………………… 100
6.3.3 默认参数………………………… 101
6.3.4 可变参数………………………… 103
6.4 变量作用域………………………… 106
6.4.1 局部变量………………………… 106
6.4.2 全局变量………………………… 108
6.5 函数返回值………………………… 109
6.6 Lambda表达式… ………………… 112
6.7 小结………………………………… 114
6.8 知识拓展…………………………… 114
6.8.1 文档字符串……………………… 114
6.8.2 内置函数………………………… 116
6.8.3 函数注释………………………… 117
第7章 面向对象… …………………… 119
7.1 面向对象介绍……………………… 119
7.1.1 对象……………………………… 121
7.1.2 类………………………………… 123
7.2 Python与面向对象………………… 123
7.2.1 介绍……………………………… 124
7.2.2 定义语法………………………… 124
7.2.3 类的使用………………………… 125
7.2.4 类的构造方法…………………… 125
7.2.5 类的属性………………………… 126
7.2.6 类中的方法……………………… 127
7.2.7 私有属性………………………… 128
7.2.8 私有方法………………………… 130
7.3 继承和多态………………………… 130
7.3.1 继承……………………………… 130
7.3.2 多态……………………………… 135
7.3.3 鸭子类型………………………… 138
7.4 小结………………………………… 140
7.5 知识拓展…………………………… 140
7.5.1 类变量和实例变量……………… 140
7.5.2 静态方法与类方法……………… 141
第8章 错误和异常… ………………… 143
8.1 语法错误…………………………… 143
8.2 异常………………………………… 144
8.3 处理异常…………………………… 146
8.4 抛出异常…………………………… 148
8.5 finally子句… ……………………… 150
8.6 小结………………………………… 151
8.7 知识拓展…………………………… 152
自定义异常……………………………… 152
第9章 模 块… ……………………… 154
9.1 介绍………………………………… 154
9.2 模块………………………………… 154
9.2.1 模块介绍………………………… 154
9.2.2 __name__变量…………………… 155
9.2.3 dir函数…………………………… 156
9.2.4 使用模块………………………… 157
9.3 包…………………………………… 158
9.3.1 使用包…………………………… 158
9.3.2 包在多目录中使用……………… 159
9.4 标准库……………………………… 160
9.4.1 sys………………………………… 160
9.4.2 os… ……………………………… 166
9.4.3 math… …………………………… 169
9.4.4 random… ………………………… 172
9.5 安装第三方库……………………… 175
9.5.1 Linux以及Mac OS平台…………… 175
9.5.2 Windows平台… ………………… 177
9.6 小结………………………………… 178
9.7 知识拓展…………………………… 179
9.7.1 globals和locals函数……………… 179
9.7.2 pyc文件… ……………………… 183
0章 文件与IO… ………………… 184
10.1 打开文件… ……………………… 184
10.1.1 文件模式… …………………… 184
10.1.2 文件编码… …………………… 185
10.1.3 文件缓冲… …………………… 186
10.2 文件基本操作… ………………… 186
10.2.1 读文件… ……………………… 186
10.2.2 写文件… ……………………… 187
10.2.3 按行读文件… ………………… 188
10.2.4 按行写文件… ………………… 189
10.2.5 关闭文件… …………………… 190
10.3 StringIO和BytesIO… …………… 192
10.4 序列化与反序列化… …………… 194
10.4.1 pickle模块… …………………… 194
10.4.2 JSON序列化与反序列化… …… 197
10.5 小结… …………………………… 200
1章 日期和时间………………… 201
11.1 基本概念… ……………………… 201
11.1.1 时间戳… ……………………… 201
11.1.2 时间日期格式化符号… ……… 202
11.1.3 时间元组… …………………… 203
11.2 time模块… ……………………… 203
11.2.1 time函数………………………… 203
11.2.2 localtime函数…………………… 204
11.2.3 mktime函数… ………………… 204
11.2.4 gmtime函数… ………………… 205
11.2.5 asctime函数… ………………… 206
11.2.6 ctime函数… ………… 206
11.2.7 sleep函数… …………………… 207
11.2.8 clock函数… …………………… 207
11.2.9 strftime函数… ………………… 208
11.2.10 strptime函数…………………… 209
11.3 datetime模块……………………… 209
11.3.1 date对象………………………… 209
11.3.2 time对象………………………… 212
11.3.3 datetime对象… ………………… 213
11.3.4 timedelta对象…………………… 216
11.3.5 tzinfo对象… …………………… 217
11.4 calendar模块……………………… 218
11.5 小结… …………………………… 222
11.6 知识拓展… ……………………… 223
11.6.1 dateutil介绍… ………………… 223
11.6.2 使用dateutil… ………………… 223
2章 多线程与并行……………… 227
12.1 线程和进程介绍… ……………… 227
12.1.1 进程基本概念… ……………… 227
12.1.2 线程基本概念… ……………… 228
12.1.3 多线程基本概念… …………… 228
12.1.4 Python与全局解释器锁………… 229
12.2 Python线程模块… ……………… 229
12.2.1 _thread模块… ………………… 229
12.2.2 Threading.Thread… …………… 233
12.2.3 线程同步… …………………… 237
12.2.4 队列… ………………………… 241
12.3 Python进程模块… ……………… 244
12.3.1 os模块…………………………… 244
12.3.2 subprocess模块… ……………… 246
12.3.3 multiprocessing.Process… ……… 249
12.4 小结… …………………………… 253
12.5 知识拓展… ……………………… 253
12.5.1 进程池… ……………………… 253
12.5.2 线程池… ……………………… 256
3章 正则表达式………………… 259
13.1 正则表达式介绍… ……………… 259
13.2 正则表达式语法… ……………… 260
13.2.1 普通字符… …………………… 260
13.2.2 字符转义… …………………… 262
13.2.3 元字符… ……………………… 262
13.2.4 限定符… ……………………… 263
13.2.5 定位符… ……………………… 264
13.2.6 分组构造… …………………… 265
13.2.7 匹配模式… …………………… 265
13.3 re模块… ………………………… 266
13.3.1 re模块介绍……………………… 266
13.3.2 compile函数… ………………… 267
13.3.3 match函数… …………………… 267
13.3.4 re.search………………………… 268
13.3.5 re.findall………………………… 269
13.3.6 re.split…………………………… 269
13.3.7 re.sub… ………………………… 270
13.4 小结… …………………………… 270
13.5 知识拓展… ……………………… 271
13.5.1 re模块的分组匹配……………… 271
13.5.2 贪婪与非贪婪匹配… ………… 272
13.5.3 零宽断言… …………………… 272
13.5.4 常用正则表达式参考… ……… 273
4章 邮件处理…………………… 282
14.1 电子邮件介绍… ………………… 282
14.1.1 电子邮件简介… ……………… 282
14.1.2 电子邮件格式… ……………… 282
14.1.3 电子邮件工作原理… ………… 283
14.2 发送电子邮件… ………………… 284
14.2.1 SMTP发送电子邮件… ………… 284
14.2.2 发送HTML格式的电子邮件… … 286
14.2.3 发送带附件的邮件… ………… 287
14.2.4 发送图片… …………………… 289
14.3 接收电子邮件… ………………… 291
14.3.1 使用POP3协议下载邮件… …… 291
14.3.2 使用IMAP协议下载邮件… …… 293
14.3.3 解析邮件… …………………… 294
14.4 小结… …………………………… 296
5章 加密解密…………………… 297
15.1 加密技术概述… ………………… 297
15.1.1 加密技术介绍… ……………… 297
15.1.2 对称加密算法… ……………… 299
15.1.3 非对称加密算法… …………… 299
15.1.4 数字签名… …………………… 300
15.2 Python加密技术… ……………… 301
15.2.1 使用MD5加密… ……………… 301
15.2.2 使用SHA加密… ……………… 304
15.2.3 使用DES加密…………………… 304
15.2.4 使用AES加密…………………… 306
15.2.5 使用RSA加密…………………… 308
15.3 加密技术使用场景… …………… 311
15.3.1 密码存储… …………………… 311
15.3.2 base64加密……………………… 311
15.4 小结… …………………………… 312
15.5 知识拓展… ……………………… 312
15.5.1 密码学之父… ………………… 312
15.5.2 万维网的发展… ……………… 312
15.5.3 Hash在密码学的应用… ……… 313
15.5.4 加盐算法… …………………… 313
6章 网络编程…………………… 314
16.1 计算机网络介绍… ……………… 314
16.1.1 OSI七层模型…………………… 314
16.1.2 TCPIP协议介绍… …………… 315
16.1.3 什么是IP地址?… …………… 315
16.1.4 什么是子网掩码?… ………… 316
16.1.5 域名… ………………………… 317
16.2 Python底层网络模块… ………… 317
16.2.1 Socket简介……………………… 317
16.2.2 socket模块……………………… 318
16.2.3 socket对象方法………………… 319
16.3 TCP编程… ……………………… 321
16.3.1 客户端… ……………………… 321
16.3.2 服务端… ……………………… 324
16.4 UDP编程… ……………………… 326
16.5 urllib模块… ……………………… 328
16.5.1 GET请求………………………… 328
16.5.2 POST请求… …………………… 330
16.6 小结… …………………………… 332
16.7 知识拓展… ……………………… 332
16.7.1 requests模块介绍… …………… 332
16.7.2 requests模块简单使用… ……… 333
7章 MySQL数据库… …………… 337
17.1 MySQL介绍… …………………… 337
17.2 MySQL工具介绍… ……………… 337
17.2.1 MySQL 控制台客户端… ……… 337
17.2.2 MySQL Workbench软件………… 338
17.3 数据库管理… …………………… 338
17.3.1 创建数据库… ………………… 338
17.3.2 选择数据库… ………………… 339
17.3.3 查看数据库… ………………… 340
17.3.4 修改数据库… ………………… 341
17.3.5 删除数据库… ………………… 341
17.4 字段类型… ……………………… 342
17.4.1 数值类型… …………………… 342
17.4.2 字符串类型… ………………… 343
17.4.3 时间类型… …………………… 344
17.5 数据表操作… …………………… 345
17.5.1 创建数据表… ………………… 345
17.5.2 查看数据表… ………………… 348
17.5.3 修改数据表… ………………… 350
17.5.4 删除数据表… ………………… 353
17.6 数据库语句… …………………… 353
17.6.1 新增数据… …………………… 353
17.6.2 查询数据… …………………… 354
17.6.3 修改数据… …………………… 354
17.6.4 删除数据… …………………… 355
17.6.5 replace操作… ………………… 355
17.7 数据表字符集… ………………… 356
17.7.1 查看字符集… ………………… 357
17.7.2 设置字符集… ………………… 359
17.7.3 处理乱码… …………………… 360
17.8 数据库索引… …………………… 361
17.8.1 索引介绍… …………………… 361
17.8.2 索引… …………………… 361
17.8.3 普通索引… …………………… 362
17.9 小结… …………………………… 363
17.10 知识拓展………………………… 363
17.10.1 MySQL关键字… ……………… 363
17.10.2 MySQL的发展历程… ………… 365
8章 Python操作MySQL………… 367
18.1 Python数据库API………………… 367
18.1.1 DB-API介绍… ………………… 367
18.1.2 模块接口… …………………… 367
18.1.3 错误和异常… ………………… 368
18.1.4 连接和游标对象… …………… 369
18.1.5 类型… ………………………… 372
18.2 数据库操作… …………………… 373
18.2.1 安装模块… …………………… 373
18.2.2 连接数据库… ………………… 373
18.2.3 创建表… ……………………… 374
18.2.4 插入数据… …………………… 375
18.2.5 查询数据… …………………… 376
18.2.6 新数据… …………………… 377
18.2.7 删除数据… …………………… 379
18.3 事务… …………………………… 380
18.4 小结… …………………………… 382
18.5 知识拓展… ……………………… 382
18.5.1 SQLAlchemy模块介绍… ……… 382
18.5.2 SQLAlchemy模块简单使用… … 382
9章 使用Django创建Web站点…… 385
19.1 常见的Web开发框架… ………… 385
19.1.1 Python与Web…………………… 385
19.1.2 Flask… ………………………… 385
19.1.3 Tornado… ……………………… 386
19.1.4 Django…………………………… 387
19.1.5 Pyramid… ……………………… 387
19.1.6 选择合适的框架… …………… 388
19.2 开发环境介绍… ………………… 388
19.2.1 Django安装……………………… 388
19.2.2 创建Django项目………………… 389
19.2.3 开发服务器… ………………… 391
19.3 开始Django之旅… ……………… 394
19.3.1 配置数据库… ………………… 394
19.3.2 生成Django应用………………… 395
19.3.3 创建模型… …………………… 397
19.3.4 管理站点… …………………… 399
19.3.5 编辑视图… …………………… 403
19.3.6 使用模板… …………………… 405
19.3.7 总结… ………………………… 407
19.4 小结… …………………………… 408
19.5 知识拓展… ……………………… 408
19.5.1 WSGI介绍… …………………… 408
19.5.2 实现一个简单的WSGI接口… … 409