第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
第10章 文件与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
第11章 日期和时间 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
第12章 多线程与并行 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
第13章 正则表达式 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
第14章 邮件处理 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
第15章 加密解密 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
第16章 网络编程 314
16.1计算机网络介绍 314
16.1.1 OSI七层模型 314
16.1.2 TCP/IP协议介绍 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
第17章 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
第18章 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
第19章 使用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