深入 Python :Dive Into Python 中文版
Python 从新手到专家 [Dip_5.4b_CPyUG_Release]
Dive Into Python
审校 (5.4b):2007 年 6 月--9 月
译文版 (5.4):2005 年 12 月--2006 年 4 月 (update-060425)
英文原版 (5.4):2004 年 5 月 20 日
Copyright (c) 2000, 2001, 2002, 2003, 2004 Mark Pilgrim
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007 CPyUG (邮件列表)
本书存放在
http://diveintopython.org/ (英文原版) 和
http://www.woodpecker.org.cn/diveintopython(中文版)。如果你是从别的地方看到它的,可能看到的不是最新版本。
Permission is granted to copy, distribute, and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in 附录 G, GNU Free Documentation
License.
允许在 GNU 自由文档协议 (1.1 版,或自由软件基金会出版的任何更新版本) 的许可下复制、发行且/或修改本文档;本文档没有不变部分,没有
前封面文本,没有封底文本。该协议的一份中文版参考译文包含在 附录 H, GNU 自由文档协议 中。
在这本书中的例程是自由软件。你可以在遵守 Python 协议 (Python 软件基金会发布) 条款的规定下,重新发布,且/或修改它们。在 附
录 I, Python license 中包含了此协议的一份拷贝。
本译本由 Zoom.Quiet 负责项目管理。感谢啄木鸟社区提供 SVN 项目空间和 Wiki 协作空间。
本译本由 啄木鸟/CPUG 的 obp 团队完成。可以在修订历史中找到一个翻译和修订人员的清单。如果您对当前版本的 Dive Into
Python 中文版有任何意见和建议,可以到本书的 Wiki 协作空间中留下你的评论。
本译文遵守 GFDL 的规定。你可以复制、发行、修改此文档,但请保留此版权信息。
目录
* 1. 安装 Python
o 1.1. 哪一种 Python 适合您?
o 1.2. Windows 上的 Python
o 1.3. Mac OS X 上的 Python
o 1.4. Mac OS 9 上的 Python
o 1.5. RedHat Linux 上的 Python
o 1.6. Debian GNU/Linux 上的 Python
o 1.7. 从源代码安装 Python
o 1.8. 使用 Python 的交互 Shell
o 1.9. 小结
* 2. 第一个 Python 程序
o 2.1. 概览
o 2.2. 函数声明
+ 2.2.1. Python 和其他编程语言数据类型的比较
o 2.3. 文档化函数
o 2.4. 万物皆对象
+ 2.4.1. 模块导入的搜索路径
+ 2.4.2. 何谓对象?
o 2.5. 代码缩进
o 2.6. 测试模块
* 3. 内置数据类型
o 3.1. Dictionary 介绍
+ 3.1.1. Dictionary 的定义
+ 3.1.2. Dictionary 的修改
+ 3.1.3. 从 dictionary 中删除元素
o 3.2. List 介绍
+ 3.2.1. List 的定义
+ 3.2.2. 向 list 中增加元素
+ 3.2.3. 在 list 中搜索
+ 3.2.4. 从 list 中删除元素
+ 3.2.5. 使用 list 的运算符
o 3.3. Tuple 介绍
o 3.4. 变量声明
+ 3.4.1. 变量引用
+ 3.4.2. 一次赋多值
o 3.5. 格式化字符串
o 3.6. 映射 list
o 3.7. 连接 list 与分割字符串
+ 3.7.1. 字符串方法的历史注解
o 3.8. 小结
* 4. 自省的威力
o 4.1. 概览
o 4.2. 使用可选参数和命名参数
o 4.3. 使用 type、str、dir 和其它内置函数
+ 4.3.1. type 函数
+ 4.3.2. str 函数
+ 4.3.3. 内置函数
o 4.4. 通过 getattr 获取对象引用
+ 4.4.1. 用于模块的 getattr
+ 4.4.2. getattr 作为一个分发者
o 4.5. 过滤列表
o 4.6. and 和 or 的特殊性质
+ 4.6.1. 使用 and-or 技巧
o 4.7. 使用 lambda 函数
+ 4.7.1. 真实世界中的 lambda 函数
o 4.8. 全部放在一起
o 4.9. 小结
* 5. 对象和面向对象
o 5.1. 概览
o 5.2. 使用 from module import 导入模块
o 5.3. 类的定义
+ 5.3.1. 初始化并开始类编码
+ 5.3.2. 了解何时去使用 self 和 __init__
o 5.4. 类的实例化
+ 5.4.1. 垃圾回收
o 5.5. 探索 UserDict:一个封装类
o 5.6. 专用类方法
+ 5.6.1. 获得和设置数据项
o 5.7. 高级专用类方法
o 5.8. 类属性介绍
o 5.9. 私有函数
o 5.10. 小结
* 6. 异常和文件处理
o 6.1. 异常处理
+ 6.1.1. 为其他用途使用异常
o 6.2. 与文件对象共事
+ 6.2.1. 读取文件
+ 6.2.2. 关闭文件
+ 6.2.3. 处理 I/O 错误
+ 6.2.4. 写入文件
o 6.3. for 循环
o 6.4. 使用 sys.modules
o 6.5. 与目录共事
o 6.6. 全部放在一起
o 6.7. 小结
* 7. 正则表达式
o 7.1. 概览
o 7.2. 个案研究:街道地址
o 7.3. 个案研究:罗马字母
+ 7.3.1. 校验千位数
+ 7.3.2. 校验百位数
o 7.4. 使用 {n,m} 语法
+ 7.4.1. 校验十位数和个位数
o 7.5. 松散正则表达式
o 7.6. 个案研究:解析电话号码
o 7.7. 小结
* 8. HTML 处理
o 8.1. 概览
o 8.2. sgmllib.py 介绍
o 8.3. 从 HTML 文档中提取数据
o 8.4. BaseHTMLProcessor.py 介绍
o 8.5. locals 和 globals
o 8.6. 基于 dictionary 的字符串格式化
o 8.7. 给属性值加引号
o 8.8. dialect.py 介绍
o 8.9. 全部放在一起
o 8.10. 小结
* 9. XML 处理
o 9.1. 概览
o 9.2. 包
o 9.3. XML 解析
o 9.4. Unicode
o 9.5. 搜索元素
o 9.6. 访问元素属性
o 9.7. Segue
* 10. 脚本和流
o 10.1. 抽象输入源
o 10.2. 标准输入、输出和错误
o 10.3. 查询缓冲节点
o 10.4. 查找节点的直接子节点
o 10.5. 根据节点类型创建不同的处理器
o 10.6. 处理命令行参数
o 10.7. 全部放在一起
o 10.8. 小结
* 11. HTTP Web 服务
o 11.1. 概览
o 11.2. 避免通过 HTTP 重复地获取数据
o 11.3. HTTP 的特性
+ 11.3.1. 用户代理 (User-Agent)
+ 11.3.2. 重定向 (Redirects)
+ 11.3.3. Last-Modified/If-Modified-Since
+ 11.3.4. ETag/If-None-Match
+ 11.3.5. 压缩 (Compression)
o 11.4. 调试 HTTP web 服务
o 11.5. 设置 User-Agent
o 11.6. 处理 Last-Modified 和 ETag
o 11.7. 处理重定向
o 11.8. 处理压缩数据
o 11.9. 全部放在一起
o 11.10. 小结
* 12. SOAP Web 服务
o 12.1. 概览
o 12.2. 安装 SOAP 库
+ 12.2.1. 安装 PyXML
+ 12.2.2. 安装 fpconst
+ 12.2.3. 安装 SOAPpy
o 12.3. 步入 SOAP
o 12.4. SOAP 网络服务查错
o 12.5. WSDL 介绍
o 12.6. 以 WSDL 进行 SOAP 内省
o 12.7. 搜索 Google
o 12.8. SOAP 网络服务故障排除
o 12.9. 小结
* 13. 单元测试
o 13.1. 罗马数字程序介绍 II
o 13.2. 深入
o 13.3. romantest.py 介绍
o 13.4. 正面测试 (Testing for success)
o 13.5. 负面测试 (Testing for failure)
o 13.6. 完备性检测 (Testing for sanity)
* 14. 测试优先编程
o 14.1. roman.py, 第 1 阶段
o 14.2. roman.py, 第 2 阶段
o 14.3. roman.py, 第 3 阶段
o 14.4. roman.py, 第 4 阶段
o 14.5. roman.py, 第 5 阶段
* 15. 重构
o 15.1. 处理 bugs
o 15.2. 应对需求变化
o 15.3. 重构
o 15.4. 后记
o 15.5. 小结
* 16. 函数编程
o 16.1. 概览
o 16.2. 找到路径
o 16.3. 重识列表过滤
o 16.4. 重识列表映射
o 16.5. 数据中心思想编程
o 16.6. 动态导入模块
o 16.7. 全部放在一起
o 16.8. 小结
* 17. 动态函数
o 17.1. 概览
o 17.2. plural.py, 第 1 阶段
o 17.3. plural.py, 第 2 阶段
o 17.4. plural.py, 第 3 阶段
o 17.5. plural.py, 第 4 阶段
o 17.6. plural.py, 第 5 阶段
o 17.7. plural.py, 第 6 阶段
o 17.8. 小结
* 18. 性能优化
o 18.1. 概览
o 18.2. 使用 timeit 模块
o 18.3. 优化正则表达式
o 18.4. 优化字典查找
o 18.5. 优化列表操作
o 18.6. 优化字符串操作
o 18.7. 小结
* A. 进一步阅读
* B. 五分钟回顾
* C. 技巧和窍门
* D. 示例清单
* E. 修订历史
* F. 关于本书
* G. GNU Free Documentation License
o G.0. Preamble
o G.1. Applicability and definitions
o G.2. Verbatim copying
o G.3. Copying in quantity
o G.4. Modifications
o G.5. Combining documents
o G.6. Collections of documents
o G.7. Aggregation with independent works
o G.8. Translation
o G.9. Termination
o G.10. Future revisions of this license
o G.11. How to use this License for your documents
* H. GNU 自由文档协议
o H.0. 序
o H.1. 适用范围和定义
o H.2. 原样复制
o H.3. 大量复制
o H.4. 修改
o H.5. 合并文档
o H.6. 文档合集
o H.7. 独立著作聚集
o H.8. 翻译
o H.9. 终止协议
o H.10. 协议将来的修订
o H.11. 如何为你的文档使用本协议
* I. Python license
o I.A. History of the software
o I.B. Terms and conditions for accessing or otherwise using
Python
+ I.B.1. PSF license agreement
+ I.B.2. BeOpen Python open source license agreement
version 1
+ I.B.3. CNRI open source GPL-compatible license
agreement
+ I.B.4. CWI permissions statement and disclaimer
* J. Python 协议
o J.0. 关于译文的声明
o J.A. 软件的历史
o J.B. 使用 Python 的条款和条件
+ J.B.1. PSF 协议
+ J.B.2. BeOpen Python 开源协议第 1 版
+ J.B.3. CNRI 开源 GPL 兼容协议
+ J.B.4. CWI 许可声明与免责声明
在线阅读:
http://www.woodpecker.org.cn/diveintopython/toc/index.html