• 1. 安装 Python
    • 1.1. 哪一种 Python 适合您?
    • 1.2. Windows 上的 Python
    • 1.3. Mac OS X 上的 Python
    • 1.4. Mac OS 9 上的 Python
    • 1.5. RedHat Linux 上的 Python
    • 1.6. Debian GNU/Linux 上的 Python
    • 1.7. 从源代码安装 Python
    • 1.8. 使用 Python 的交互 Shell
    • 1.9. 小结
  • 2. 第一个 Python 程序
    • 2.1. 概览
    • 2.2. 函数声明
      • 2.2.1. Python 和其他编程语言数据类型的比较
    • 2.3. 文档化函数
    • 2.4. 万物皆对象
      • 2.4.1. 模块导入的搜索路径
      • 2.4.2. 何谓对象?
    • 2.5. 代码缩进
    • 2.6. 测试模块
  • 3. 内置数据类型
    • 3.1. Dictionary 介绍
      • 3.1.1. Dictionary 的定义
      • 3.1.2. Dictionary 的修改
      • 3.1.3. 从 dictionary 中删除元素
    • 3.2. List 介绍
      • 3.2.1. List 的定义
      • 3.2.2. 向 list 中增加元素
      • 3.2.3. 在 list 中搜索
      • 3.2.4. 从 list 中删除元素
      • 3.2.5. 使用 list 的运算符
    • 3.3. Tuple 介绍
    • 3.4. 变量声明
      • 3.4.1. 变量引用
      • 3.4.2. 一次赋多值
    • 3.5. 格式化字符串
    • 3.6. 映射 list
    • 3.7. 连接 list 与分割字符串
      • 3.7.1. 字符串方法的历史注解
    • 3.8. 小结
  • 4. 自省的威力
    • 4.1. 概览
    • 4.2. 使用可选参数和命名参数
    • 4.3. 使用 type、str、dir 和其它内置函数
      • 4.3.1. type 函数
      • 4.3.2. str 函数
      • 4.3.3. 内置函数
    • 4.4. 通过 getattr 获取对象引用
      • 4.4.1. 用于模块的 getattr
      • 4.4.2. getattr 作为一个分发者
    • 4.5. 过滤列表
    • 4.6. and 和 or 的特殊性质
      • 4.6.1. 使用 and-or 的技巧
    • 4.7. 使用 lambda 函数
      • 4.7.1. 真实世界中的 lambda 函数
    • 4.8. 全部放在一起
    • 4.9. 小结
  • 5. 对象和面向对象
    • 5.1. 概览
    • 5.2. 使用 from module import 导入模块
    • 5.3. 类的定义
      • 5.3.1. 初始化并开始类编码
      • 5.3.2. 了解何时去使用 self 和 __init__
    • 5.4. 类的实例化
      • 5.4.1. 垃圾回收
    • 5.5. 探索 UserDict: 一个封装类
    • 5.6. 专用类方法
      • 5.6.1. 获得和设置数据项
    • 5.7. 高级专用类方法
    • 5.8. 类属性介绍
    • 5.9. 私有函数
    • 5.10. 小结
  • 6. 异常和文件处理
    • 6.1. 异常处理
      • 6.1.1. 为其他用途使用异常
    • 6.2. 与文件对象共事
      • 6.2.1. 读取文件
      • 6.2.2. 关闭文件
      • 6.2.3. 处理 I/O 错误
      • 6.2.4. 写入文件
    • 6.3. for 循环
    • 6.4. 使用 sys.modules
    • 6.5. 与 Directory 共事
    • 6.6. 全部放在一起
    • 6.7. 小结
  • 7. 正则表达式
    • 7.1. 概览
    • 7.2. 个案研究:街道地址
    • 7.3. 个案研究:罗马字母
      • 7.3.1. 校验千位数
      • 7.3.2. 检验百位数
    • 7.4. 使用 {n,m} 语法
      • 7.4.1. 校验十位数和个位数
    • 7.5. 松散正则表达式
    • 7.6. 个案研究: 解析电话号码
    • 7.7. 小结
  • 8. HTML 处理
    • 8.1. 概览
    • 8.2. sgmllib.py 介绍
    • 8.3. 从 HTML 文档中提取数据
    • 8.4. BaseHTMLProcessor.py 介绍
    • 8.5. locals 和 globals
    • 8.6. 基于 dictionary 的字符串格式化
    • 8.7. 给属性值加引号
    • 8.8. dialect.py 介绍
    • 8.9. 全部放在一起
    • 8.10. 小结
  • 9. XML 处理
    • 9.1. 概览
    • 9.2. 包
    • 9.3. XML 解析
    • 9.4. Unicode
    • 9.5. 搜索元素
    • 9.6. 访问元素属性
    • 9.7. Segue
  • 10. Scripts 和 Streams
    • 10.1. 抽象输入源
    • 10.2. 标准输入、输出和错误
    • 10.3. 缓冲节点查询
    • 10.4. 查找节点的直接子节点
    • 10.5. 通过节点类型创建独立的处理句柄
    • 10.6. 处理命令行参数
    • 10.7. 全部放在一起
    • 10.8. 小结
  • 11. HTTP Web 服务
    • 11.1. 概览
    • 11.2. 避免通过 HTTP 重复地获取数据
    • 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)
    • 11.4. 调试 HTTP web 服务
    • 11.5. 设置 User-Agent
    • 11.6. 处理 Last-Modified 和 ETag
    • 11.7. 处理重定向
    • 11.8. 处理被压缩的数据
    • 11.9. 全部放在一起
    • 11.10. 小结
  • 12. SOAP Web 服务
    • 12.1. 概览
    • 12.2. 安装 SOAP 库
      • 12.2.1. 安装 PyXML
      • 12.2.2. 安装 fpconst
      • 12.2.3. 安装 SOAPpy
    • 12.3. 步入 SOAP
    • 12.4. SOAP 网络服务查错
    • 12.5. WSDL 介绍
    • 12.6. 以 WSDL 进行 SOAP 内省
    • 12.7. 搜索 Google
    • 12.8. SOAP 网络服务故障排除
    • 12.9. 小结
  • 13. 单元测试
    • 13.1. 罗马数字程序介绍 II
    • 13.2. 深入
    • 13.3. 介绍 romantest.py
    • 13.4. 正面测试 (Testing for success)
    • 13.5. 负面测试 (Testing for failure)
    • 13.6. 完备性检测 (Testing for sanity)
  • 14. 以测试优先为原则的编程
    • 14.1. roman.py, 第 1 阶段
    • 14.2. roman.py, 第 2 阶段
    • 14.3. roman.py, 第 3 阶段
    • 14.4. roman.py, 第 4 阶段
    • 14.5. roman.py, 第 5 阶段
  • 15. 重构
    • 15.1. 处理 bugs
    • 15.2. 应对需求变化
    • 15.3. 重构
    • 15.4. 后记
    • 15.5. 小结
  • 16. 有效编程
    • 16.1. 概览
    • 16.2. 找到路径
    • 16.3. 过滤已访问列表
    • 16.4. 关联已访问列表
    • 16.5. 数据中心思想编程
    • 16.6. 动态导入模块
    • 16.7. 全部放在一起
    • 16.8. 小结
  • 17. 动态函数
    • 17.1. 概览
    • 17.2. plural.py, 第 1 阶段
    • 17.3. plural.py, 第 2 阶段
    • 17.4. plural.py, 第 3 阶段
    • 17.5. plural.py, 第 4 阶段
    • 17.6. plural.py, 第 5 阶段
    • 17.7. plural.py, 第 6 阶段
    • 17.8. 小结
  • 18. 性能优化
    • 18.1. 概览
    • 18.2. 使用 timeit 模块
    • 18.3. 优化正则表达式
    • 18.4. 优化字典查找
    • 18.5. 优化列表操作
    • 18.6. 优化字符串操作
    • 18.7. 小结
  • 附录
    • A. 进一步阅读
    • B. 五分钟回顾
    • C. 技巧和窍门
    • D. 示例清单
    • E. 修订历史
    • F. 关于本书