前言 1
第1部分 Python语言入门 5
第1章 认识Python 6
1.1启动Python解释程序 6
1.2用变量和表达式进行试验 7
1.3定义函数 8
1.4运行Python程序 9
1.5循环和控制 9
1.6列表和元组 11
1.7词典 12
1.9样例程序:字频率 13
1.8读写文件 13
1.10加载及使用模块 16
1.11创建类 16
1.12推荐的阅读资料 18
1.13小结 19
第2章 标识符、变量和数字类型 20
2.1标识符和运算符 20
2.2数字类型 21
2.3给变量赋值 26
2.4小结 28
3.1表达式 29
第3章 表达式和字符串 29
3.2字符串 33
3.3在简单类型之间进行转换 42
3.4小结 45
第4章 高级数据类型 46
4.1采用序列组合数据 46
4.2处理序列 49
4.3使用附加的列表对象特征 54
4.4用词典映射信息 57
4.5理解引用 60
4.6复制复合对象 61
4.7标识数据类型 63
4.8处理数组对象 64
4.9小结 67
第5章 控制流 68
5.1用if语句做出决策 68
5.2使用for循环 69
5.3使用while循环 73
5.4抛弃及捕获异常事件 74
5.5用断言进行调试 77
5.6示例:Came of Life 78
5.7小结 80
第6章 程序组织 81
6.1定义函数 81
6.2用模块为代码分组 85
6.3导入模块 86
6.4定位模块 87
6.5理解作用域规则 88
6.6指模块组合为包 89
6.7按计划编译和运行 90
6.8小结 90
7.2创建类和实例对象 91
7.1概述面向对象的Python 91
第7章 面向对象的Phthon 91
7.3从其他类中派生新类 94
7.4隐藏私有数据 98
7.5识别类成员 98
7.6重载标准行为 99
7.7使用弱引用 105
7.8小结 107
第8章 输入和输出 109
8.1打印到屏幕 109
8.2访问键盘输入 110
8.3打开、关闭及定位文件 111
8.4写文件 113
8.5读文件 114
8.6访问标准I/O 116
8.7使用类似文件的对象 116
8.8小结 118
第2部分 文件、数据、存储和操作系统服务 119
第9章 处理字符串和正则表达式 120
9.1使用字符串对象 120
9.2使用字符串模块 125
9.3定义正则表达式 126
9.4使用匹配对象 133
9.5把字符串当作文件处理 134
9.6为文本编码 135
9.7设置浮点的格式 138
9.8小结 138
第10章 处理文件和目录 140
10.1检索文件和目录信息 140
10.2建立并仔细分析路径 145
10.3列出目录以及匹配文件名 147
10.4获得环境和参量信息 148
10.5示例:递归的Grep实用程序 150
10.6复制、重命名及删除路径 151
10.7创建目录和临时文件 152
10.8比较文件和目录 154
10.9处理文件描述符 155
10.10其他的文件处理技巧 157
10.11小结 159
第11章 使用其他操作系统服务 160
11.1执行shell命令和其他程序 160
11.2产生子进程 161
11.3处理进程信息 166
11.4检索系统信息 166
11.5管理配置文件 167
11.6理解错误名 169
11.7处理异步信号 170
11.8小结 172
第12章 存储数据和对象 173
12.1数据存储概述 173
12.2加载并保存对象 174
12.3示例:通过网络移动对象 178
12.4使用类似数据库的存储 180
12.5转换到C结构或从C结构转换回来 181
12.6把数据转换为标准格式 184
12.7压缩数据 187
12.8小结 192
第13章 访问日期和时间 193
13.1在Python中告知时间 193
13.2时间格式之间的转换 195
13.3解析及打印日期和时间 195
13.4访问日历 197
13.5使用时区 199
13.6允许两位数字的年 200
13.7小结 200
第14章 使用数据库 201
14.1使用基于磁盘的词典 201
14.2 DBM示例:跟踪电话号码 202
14.3基于磁盘的高级词典 204
14.4访问关系数据库 205
14.5示例:“类似声音的”查询 206
14.6检验相关的元数据 209
14.7示例:创建审计表 209
14.8 DB API的高级特征 211
14.9小结 214
第3部分 联网和Internet 215
第15章 联网 216
15.1联网背景 216
15.2处理地址和主机名 217
15.3与低层套接字通信 218
15.4示例:多点传送的聊天应用程序 223
15.5使用SocketServers 229
15.6处理Web浏览器请求 231
15.7在不使用线程的情况下处理多个请求 236
15.8小结 239
第16章 解组Internet协议 240
16.1 Python的Internet协议支持 240
16.2检索Internet资源 240
16.3发送HTTP请求 243
16.4发送和接收电子邮件 245
16.5经由FTP传输文件 252
16.6使用Gopher检索资源 254
16.7处理新闻组 255
16.8使用Telnet协议 258
16.9编写CGI脚本 259
16.10小结 263
第17章 处理Internet数据 264
17.1处理URL 264
17.2格式化文本 265
17.3读取Web Spider robot文件 267
17.4在Web浏览器中查看文件 268
17.5分析电子邮件消息 269
17.6使用MIME编码 271
17.7编码和解码消息数据 276
17.8使用UNIX信箱 278
17.9使用Web Cookies 280
17.10小结 282
第18章 分析XML和其他标记语言 283
18.1标记语言基础知识 283
18.2分析HTML文件 285
18.3实例:仅用粗体 287
18.4实例:Web robot 288
18.5用SAX分析XML 291
18.6用DOM分析XML 294
18.7用xmllib分析XML 297
18.8小结 299
第4部分 用户界面和多媒体 301
第19章 使用Tkinter 302
19.1 Tkinter简介 302
19.2创建GUI 303
19.3部件布局 304
19.4实例:Breakfast按钮 306
19.5使用常见选项 309
19.6搜集用户输入 310
19.7实例:打印奇特的文本 311
19.8使用文本部件 314
19.9建立菜单 314
19.10使用Tkinter对话框 315
19.11实例:文本编辑器 316
19.12处理颜色和字体 319
19.13绘制图形 319
19.14使用计时器 321
19.15实例:反弹图片 321
19.16小结 323
20.1处理事件 324
第20章 使用高级Tkinter部件 324
20.2实例:绘图画布 325
20.3高级部件 327
20.4实例:颜色方案定制程序 328
20.5创建对话框 333
20.6支持拖放操作 334
20.7使用光标 336
20.8设计新部件 337
20.9其他的Tkinter功能 339
20.10小结 340
21.1介绍wxPython 341
第21章 用wxPython建立用户界面 341
21.2创建简单的wxPython程序 342
21.3选择不同的窗口类型 344
21.4使用wxPython控件 348
21.5控制布局 350
21.6使用内置对话框 355
21.7用设备相关内容绘图 356
21.8添加菜单和键盘快捷方式 358
21.9访问鼠标和键盘输入 359
21.10其他的wxPython特性 360
21.11小结 361
第22章 使用Curses 362
22.1 Curses概述 362
22.2启动和结束 363
22.3显示和清除文本 363
22.4移动光标 366
22.5得到用户输入 367
22.6实例:yes,no或者maybe 369
22.7管理窗口 371
22.8编辑文本 371
22.9使用颜色 372
22.10实例:一个简单的迷宫游戏 373
22.11小结 377
第23章 建立简单的命令解释程序 378
23.1在有思想准备的情况下开始 378
23.2理解Lepto语言 379
23.3创建Lepto词典分析程序 380
23.4添加交互模式功能 384
23.5执行Lepto命令 389
23.6小结 395
24.1声音文件基础 396
第24章 播放声音 396
23.2播放声音 397
23.3测试音频文件 398
23.4读取和编写音频文件 399
23.5处理原始音频数据 403
23.6小结 405
第5部分 高级Python编程 407
第25章 图像处理 408
25.1图像基础 408
25.2识别图像文件类型 408
25.3在颜色系统间转换 410
25.5使用Python图像库 412
25.4处理原始图像数据 412
25.6小结 418
第26章 多线程 419
26.1理解线程 419
26.2执行、跟踪和终止线程 420
26.3避免并发问题 422
26.4防止死锁 425
26.5实例:从多个URL下载 426
26.6转入线程化代码 432
26.7将线程与队列编织在一起 432
26.10小结 433
26.9更多信息 433
26.8技术要点:并发是如何发生的 433
第27章 调试、配置和优化 434
27.1调试Python代码 434
27.2使用docstrings工作 437
27.3自动测试 438
27.4发现瓶颈 441
27.5常见优化技巧 445
27.6扔掉废物——回收站 447
27.7小结 449
第28章 安全与加密 450
28.1密码检查 450
28.2在限制环境中运行 451
28.3创建消息指纹 455
28.4使用20世纪40年代的加密方法 457
28.5小结 458
第29章 编写扩展模块 459
29.1扩展和嵌入概况 459
29.2编写简单扩展模块 460
29.3建立和连接 462
29.4将Python数据转换为C类型数据 463
29.5将C类型数据转换为Python数据 469
29.6嵌入解释程序 471
29.7 Python代码在C环境中的运行 472
29.8使用扩展工具 475
29.9小结 479
第30章 嵌入Python解释程序 480
30.1跟踪引用记数 480
30.2使用抽象和具体对象层 482
30.3借助数字对象工作 484
30.4借助序列对象工作 486
30.5借助映射对象工作 492
30.6使用其他对象类型 493
30.7创建线程和子解释程序 496
30.8处理错误和异常 498
30.9内存管理 500
30.10小结 500
第31章 数值计算 501
31.1使用数学程序 501
31.2复数计算 502
31.3生成随机数 503
31.4使用任意精度整数 506
31.5小结 507
第32章 使用NumPy 508
32.1 Numeric Python简介 508
32.2数组的访问和切分 509
32.3调用通用函数 512
32.4创建数组 516
32.5使用元素类型 518
32.6数组的整形和缩放 519
32.7其他数组函数的使用 519
32.8数组示例:分析价格趋势 521
32.9小结 522
第33章 解析和解释Python代码 523
33.1查看回访记录 523
33.2内省 525
33.4 Python代码的标记化 528
33.3检查缩进 528
33.5示例:句法突出显示程序 529
33.6研究Python的解析树 530
33.7创建底层对象 531
33.8 Python代码的反汇编 532
33.9小结 533
第6部分 配置Python应用程序 535
第34章 创建全世界可用的应用程序 536
34.1国际化和本地化 536
34.2为多种语言准备应用程序 537
34.3与地域相关输出的格式化 540
34.4小结 543
第35章 定制导入行为 544
35.1理解模块的导入 544
35.2用imp查找和加载模块 546
35.3导入加密后的模块 547
35.4从远程来源检索模块 550
35.5小结 555
第36章 分布模块和应用程序 556
36.1理解distutils 556
36.2 distutils的其他特性 559
36.3发布扩展模块 561
36.4创建源码发布和二进制码发布 562
36.5建立独立的可执行程序 565
36.6小结 567
第7部分 对特定平台的支持 569
第37章 Windows平台 570
37.1使用win32all 570
37.2示例:使用某些Windows API 571
37.3访问Windows注册表 573
37.4示例:设定Internet Explorer的主页 574
37.5使用msvcrt goodies 576
37.6小结 577
38.1检查UNIX口令和组 578
第38章 UNIX兼容模块 578
38.2访问系统记录器 579
38.3调用共享库函数 581
38.4提供标识符和密码的完成 582
38.5检索文件系统和资源信息 583
38.6控制文件描述符 585
38.7处理终端和伪终端 586
38.8与Sun的NIS“黄页”连接 586
38.9小结 587
附录A 联机资源 588
附录B Python开发环境 590