第1章 感受Python精彩世界 1
1.1 Python概述 1
1.2 选择Python的理由 2
1.3 搭建Python的编程环境 2
1.3.1 在Windows 下安装Python 3
1.3.2 在Linux下安装Python 4
1.4 Python自带的开发工具IDLE 5
1.5 交互式运行Python命令行 6
1.6 小试身手——编辑和运行Python程序 8
第2章 Python的基础语法 12
2.1 程序结构 12
2.1.1 缩进分层 12
2.1.2 换行问题 14
2.1.3 代码注释 15
2.2 Python的输入和输出 15
2.2.1 接收键盘输入 15
2.2.2 输出处理结果 16
2.3 变量 19
2.4 标识符与保留字 20
2.5 简单数据类型 21
2.5.1 数字类型 21
2.5.2 字符串类型 23
2.5.3 数据类型的相互转换 24
2.6 Python结构数据类型 25
2.6.1 集合类型(Sets) 25
2.6.2 列表类型(List) 26
2.6.3 元组类型(Tuple) 28
2.6.4 字典类型(Dictionary) 29
2.7 运算符和优先级 29
2.7.1 算术运算符 29
2.7.2 比较运算符 31
2.7.3 赋值运算符 32
2.7.4 逻辑运算符 34
2.7.5 位运算符 35
2.7.6 成员运算符 36
2.7.7 身份运算符 37
2.7.8 运算符的优先级 38
2.8 疑难解惑 40
第3章 列表、元组和字典的基本操作 41
3.1 列表的基本操作 41
3.1.1 列表对象的特性 41
3.1.2 列表的常见操作 43
3.1.3 列表的操作符+和* 45
3.1.4 内置的函数和方法 46
3.1.5 递推式构造列表 53
3.2 元组的基本操作 54
3.2.1 元组对象的常用操作 54
3.2.2 元组的内置函数 57
3.3 字典的基本操作 59
3.3.1 字典对象的常用操作 59
3.3.2 字典的内置函数和方法 62
3.4 疑难解惑 67
第4章 熟练操作字符串 68
4.1 字符串的常用操作 68
4.1.1 访问字符串中的值 68
4.1.2 分割指定范围的字符 69
4.1.3 更新字符串 71
4.1.4 使用转义字符 72
4.2 熟练使用字符串运算符 74
4.3 格式化字符串 77
4.4 内置的字符串方法 79
4.4.1 capitalize()方法 79
4.4.2 count()方法 80
4.4.3 find()方法 81
4.4.4 index()方法 82
4.4.5 isalnum()方法 83
4.4.6 join()方法 83
4.4.7 isalpha()方法 84
4.4.8 isdigit()方法 84
4.4.9 low()方法 85
4.4.10 max()方法 86
4.4.11 min()方法 87
4.4.12 replace()方法 87
4.4.13 swapcase()方法 88
4.4.14 title()方法 88
4.5 疑难解惑 89
第5章 程序的控制结构 90
5.1 程序流程概述 90
5.2 基本处理流程 90
5.3 多样的赋值语句 92
5.3.1 基本赋值 92
5.3.2 序列解包 93
5.3.3 链式赋值 95
5.3.4 其他赋值方式 96
5.4 顺序结构 98
5.5 布尔表达式 99
5.6 选择结构与语句 102
5.6.1 选择结构 102
5.6.2 if语句 102
5.6.3 if嵌套 104
5.6.4 多重条件判断 105
5.7 循环控制语句 106
5.7.1 while语句 106
5.7.2 for语句 108
5.7.3 continue语句和else语句 110
5.7.4 pass语句 111
5.8 疑难解惑 112
第6章 函数 116
6.1 使用函数的优势 116
6.2 调用内置函数 117
6.3 定义函数 123
6.4 函数的参数 125
6.4.1 必需参数 125
6.4.2 关键字参数 126
6.4.3 默认参数 127
6.4.4 可变参数 128
6.5 有返回值的函数和无返回值的函数 130
6.6 形参和实参 132
6.7 变量作用域 134
6.8 返回函数 135
6.9 递归函数 139
6.9.1 使用递归函数 139
6.9.2 利用递归函数解决汉诺塔问题 140
6.9.3 防止栈溢出 142
6.10 匿名函数 143
6.11 偏函数 144
6.12 函数的内置属性和命名空间 146
6.13 输入和输出函数 147
6.14 疑难解惑 149
第7章 对象与类 150
7.1 理解面向对象程序设计 150
7.1.1 什么是对象 150
7.1.2 面向对象的特征 151
7.1.3 什么是类 152
7.2 类的定义 152
7.3 类的构造方法和内置属性 153
7.4 类实例 157
7.4.1 创建类实例 157
7.4.2 类实例的内置属性 161
7.5 类的内置方法 162
7.6 重载运算符 174
7.7 类的继承 175
7.8 类的多态 179
7.9 类的封装 181
7.10 Python的垃圾回收机制 184
7.11 疑难解惑 185
第8章 程序调试和异常处理 187
8.1 什么是异常 187
8.2 常见错误和异常 189
8.3 熟悉内置异常 194
8.4 使用try...except语句处理异常 202
8.5 全捕捉 204
8.6 异常中的else 205
8.7 异常中的pass 206
8.8 异常类的实例 207
8.9 清除异常 210
8.10 抛出异常 211
8.10.1 raise语句 211
8.10.2 结束解释器的运行 212
8.10.3 离开嵌套循环 213
8.11 自定义异常 214
8.12 程序调试 216
8.12.1 使用assert语句 217
8.12.2 使用_debug_内置变量 218
8.13 疑难解惑 219
第9章 模块与类库 221
9.1 什么是模块 221
9.2 什么是类库 223
9.3 模块和类库的基本操作 224
9.4 模块的名称空间 225
9.5 自定义模块 227
9.6 将模块打包 228
9.7 熟悉运行期服务模块 231
9.8 掌握字符串处理模块 241
9.9 疑难解惑 244
第10章 日期和时间 245
10.1 认识日期和时间 245
10.1.1 时间戳 245
10.1.2 struct_time元组 246
10.1.3 格式化时间 247
10.2 日历模块 249
10.3 time模块 251
10.3.1 localtime([secs])函数 252
10.3.2 clock()函数 252
10.3.3 gmtime([secs])函数 253
10.3.4 mktime([tuple])函数 253
10.3.5 ctime([secs])函数 254
10.3.6 sleep(secs)函数 254
10.3.7 strptime(string[,format])函数 255
10.4 datetime模块 256
10.4.1 date类 256
10.4.2 time类 260
10.4.3 datetime类 263
10.4.4 timedelta类 266
10.4.5 tzinfo类 267
10.5 日期和时间的常用操作 268
10.6 疑难解惑 272
第11章 迭代器、生成器和装饰器 273
11.1 迭代器 273
11.1.1 什么是可迭代对象 273
11.1.2 什么是迭代器 274
11.1.3 自定义迭代器 276
11.1.4 内置迭代器工具 277
11.2 生成器 282
11.3 装饰器 284
11.3.1 什么是装饰器 284
11.3.2 装饰函数 285
11.3.3 装饰类 286
11.4 疑难解惑 287
第12章 文件与文件系统 289
12.1 打开文件 289
12.2 读取文件 290
12.2.1 读取文件read()方法 291
12.2.2 逐行读取readline()方法 292
12.2.3 返回文件各行内容的列表readlines()方法 292
12.2.4 返回文件的当前位置tell()方法 293
12.2.5 截断文件truncate()方法 294
12.2.6 设置文件当前位置seek()方法 295
12.3 写入文件 296
12.3.1 将字符串写入到文件 296
12.3.2 写入多行writelines() 297
12.3.3 修改文件内容 298
12.3.4 附加到文件 299
12.4 关闭和刷新文件 300
12.4.1 关闭文件 300
12.4.2 刷新文件 300
12.5 疑难解惑 301
第13章 基于tkinter的GUI编程 302
13.1 常用的Python GUI 302
13.2 使用tkinter创建GUI程序 303
13.3 认识tkinter的控件 305
13.4 几何位置的设置 310
13.4.1 pack()方法 310
13.4.2 grid()方法 313
13.4.3 place()方法 314
13.5 tkinter的事件 316
13.5.1 事件的属性 316
13.5.2 事件绑定方法 317
13.5.3 鼠标事件 317
13.5.4 键盘事件 320
13.5.5 系统协议 321
13.6 Button控件 323
13.7 Canvas控件 324
13.8 Checkbutton控件 330
13.9 Entry控件 331
13.10 Label控件 332
13.11 Listbox控件 335
13.12 Menu控件 336
13.13 Message控件 341
13.14 Radiobutton控件 342
13.15 Scale控件 345
13.16 Scrollbar控件 347
13.17 Text控件 348
13.18 Toplevel控件 350
13.19 对话框 351
13.19.1 messagebox模块 352
13.19.2 filedialog模块 354
13.19.3 colorchooser模块 355
13.20 疑难解惑 357
第14章 Python的高级技术 359
14.1 图像的处理 359
14.1.1 下载与安装Pillow模块 359
14.1.2 加载图像文件 361
14.1.3 图像文件的属性 363
14.1.4 复制与粘贴图像 365
14.1.5 图像的几何转换 367
14.1.6 存储图像文件 368
14.2 语音的处理 369
14.2.1 winsound模块 369
14.2.2 sndhdr模块 370
14.2.3 wave模块 372
14.2.4 aifc模块 375
14.3 科学计算——numpy模块 375
14.3.1 下载和安装numpy模块 376
14.3.2 array对象 376
14.3.3 ufunc对象 378
14.4 正则表达式 379
14.4.1 正则表达式的特定字符 379
14.4.2 re模块的方法 380
14.5 线程 383
14.5.1 Python多线程 383
14.5.2 thread模块 384
14.5.3 threading模块 385
14.6 疑难解惑 386
第15章 数据库的应用 388
15.1 平面数据库 388
15.2 内置数据库SQLite 390
15.3 操作MySQL数据库 393
15.3.1 安装PyMySQL 393
15.3.2 连接MySQL数据库 394
15.3.3 创建数据表 395
15.3.4 插入数据 395
15.3.5 查询数据 396
15.3.6 更新数据 397
15.3.7 删除数据 398
15.4 疑难解惑 398
第16章 网络编程的应用 400
16.1 网络概要 400
16.2 socket模块 402
16.2.1 认识socket模块 402
16.2.2 创建socket连接 403
16.3 HTTP库 405
16.3.1 socketserver模块 406
16.3.2 server模块 407
16.3.3 client模块 409
16.4 urllib库 410
16.4.1 request模块 411
16.4.2 parse模块 413
16.5 ftplib模块 413
16.6 电子邮件服务协议 416
16.6.1 smptlib模块 416
16.6.2 poplib模块 418
16.6.3 imaplib模块 419
16.7 新闻组 420
16.8 远程连接计算机 422
16.9 疑难解惑 423
第17章 CGI程序设计 425
17.1 CGI简介 425
17.2 cgi模块 426
17.2.1 输入和输出 426
17.2.2 cgi模块的函数 428
17.3 创建和执行脚本 428
17.3.1 传输信息给Python脚本 428
17.3.2 表单域的处理 429
17.3.3 Session 439
17.3.4 创建输出到浏览器 439
17.4 使用cookie对象 440
17.4.1 了解cookie 440
17.4.2 读取cookie信息 440
17.5 使用模板 441
17.6 上传和下载文件 445
17.7 脚本的调试 447
17.8 疑难解惑 450
第18章 Web网站编程 451
18.1 XML编程基础 451
18.1.1 XPath简介 451
18.1.2 XSLT简介 452
18.2 XML语法基础 453
18.2.1 XML的基本应用 453
18.2.2 XML文档组成和声明 455
18.2.3 XML元素介绍 456
18.3 Python解析XML 459
18.3.1 使用SAX解析XML 459
18.3.2 使用DOM解析XML 462
18.4 XDR数据交换格式 463
18.5 JSON数据解析 467
18.6 Python解析HTML 469
18.7 疑难解惑 476
第19章 游戏应用——开发弹球游戏 477
19.1 准备工作 477
19.1.1 配置Python开发环境 477
19.1.2 选择合适的编辑器 478
19.1.3 巩固知识点 478
19.2 需求分析 478
19.3 弹球游戏中的算法 479
19.4 具体功能实现 479
19.5 项目测试 485
第20章 网络爬虫应用——豆瓣电影评论的情感分析 487
20.1 什么是爬虫 487
20.2 Python如何爬取数据 488
20.3 项目分析 488
20.4 环境配置 489
20.4.1 下载并安装库文件 489
20.4.2 检查库文件是否安装成功 492
20.5 具体功能实现 493
20.6 项目测试 496
第21章 大数据分析应用——开发数据智能分类系统 497
21.1 项目分析 497
21.2 配置环境 498
21.3 具体功能实现 499
21.4 项目测试 501
第22章 数据挖掘应用——话题模型和词云可视化 504
22.1 项目分析 504
22.2 配置环境 505
22.3 具体功能实现 507
22.4 项目测试 509