第1章 快速改造:基础知识
1.1 安装Python
1.1.1 Windows
1.1.2 Linux和UNIX
1.1.3 苹果机(Macintosh)
1.1.4 其他发行版本
1.1.5 时常关注,保持更新
1.2 交互式解释器
1.3 算法是什么
1.4 数字和表达式
1.4.1 长整数
1.4.2 十六进制和八进制
1.5 变量
1.6 语句
1.7 获取用户输入
第1章 快速改造:基础知识
1.1 安装Python
1.1.1 Windows
1.1.2 Linux和UNIX
1.1.3 苹果机(Macintosh)
1.1.4 其他发行版本
1.1.5 时常关注,保持更新
1.2 交互式解释器
1.3 算法是什么
1.4 数字和表达式
1.4.1 长整数
1.4.2 十六进制和八进制
1.5 变量
1.6 语句
1.7 获取用户输入
1.8 函数
1.9 模块
1.9.1 cmath和复数
1.9.2 回到__future__
1.10 保存并执行程序
1.10.1 通过命令提示符运行Python脚本
1.10.2 让脚本像普通程序一样运行
1.10.3 注释
1.11 字符串
1.11.1 单引号字符串和转义引号
1.11.2 拼接字符串
1.11.3 字符串表示,str和repr
1.11.4 input和raw_input的比较
1.11.5 长字符串、原始字符串和Unicode
1.12 小结
1.12.1 本章的新函数
1.12.2 接下来学什么
第2章 列表和元组
2.1 序列概览
2.2 通用序列操作
2.2.1 索引
2.2.2 分片
2.2.3 序列相加
2.2.4 乘法
2.2.5 成员资格
2.2.6 长度、最小值和最大值
2.3 列表:Python的“苦力”
2.3.1 list函数
2.3.2 基本的列表操作
2.3.3 列表方法
2.4 元组:不可变序列
2.4.1 tuple函数
2.4.2 基本元组操作
2.4.3 那么,意义何在
2.5 小结
2.5.1 本章的新函数
2.5.2 接下来学什么
第3章 使用字符串
3.1 基本字符串操作
3.2 字符串格式化:精简版
3.3 字符串格式化:完整版
3.3.1 简单转换
3.3.2 字段宽度和精度
3.3.3 符号、对齐和用0填充
3.4 字符串方法
3.4.1 find
3.4.2 join
3.4.3 lower
3.4.4 replace
3.4.5 split
3.4.6 strip
3.4.7 translate
3.5 小结
3.5.1 本章的新函数
3.5.2 接下来学什么
第4章 字典:当索引不好用时
4.1 字典的使用
4.2 创建和使用字典
4.2.1 dict函数
4.2.2 基本字典操作
4.2.3 字典的格式化字符串
4.2.4 字典方法
4.3 小结
4.3.1 本章的新函数
4.3.2 接下来学什么
第5章 条件、循环和其他语句
5.1 print和import的更多信息
5.1.1 使用逗号输出
5.1.2 把某件事作为另一件事导入
5.2 赋值魔法
5.2.1 序列解包
5.2.2 链式赋值
5.2.3 增量赋值
5.3 语句块:缩排的乐趣
5.4 条件和条件语句
5.4.1 这就是布尔变量的作用
5.4.2 条件执行和 if 语句
5.4.3 else子句
5.4.4 elif子句
5.4.5 嵌套代码块
5.4.6 更复杂的条件
5.4.7 断言
5.5 循环
5.5.1 while循环
5.5.2 for循环
5.5.3 循环遍历字典元素
5.5.4 一些迭代工具
5.5.5 跳出循环
5.5.6 循环中的else子句
5.6 列表推导式——轻量级循环
5.7 三人行
5.7.1 什么都没发生
5.7.2 使用del删除
5.7.3 使用exec和eval执行和求值字符串
5.8 小结
5.8.1 本章的新函数
5.8.2 接下来学什么
第6章 抽象
6.1 懒惰即美德
6.2 抽象和结构
6.3 创建函数
6.3.1 文档化函数
6.3.2 并非真正函数的函数
6.4 参数魔法
6.4.1 值从哪里来
6.4.2 我能改变参数吗
6.4.3 关键字参数和默认值
6.4.4 收集参数
6.4.5 参数收集的逆过程
6.4.6 练习使用参数
6.5 作用域
6.6 递归
6.6.1 两个经典:阶乘和幂
6.6.2 另外一个经典:二分法查找
6.7 小结
6.7.1 本章的新函数
6.7.2 接下来学什么
第7章 更加抽象
7.1 对象的魔力
7.1.1 多态
7.1.2 封装
7.1.3 继承
7.2 类和类型
7.2.1 类到底是什么
7.2.2 创建自己的类
7.2.3 特性、函数和方法
7.2.4 类的命名空间
7.2.5 指定超类
7.2.6 检查继承
7.2.7 多个超类
7.2.8 接口和内省
7.3 一些关于面向对象设计的思考
7.4 小结
7.4.1 本章的新函数
7.4.2 接下来学什么
第8章 异常
8.1 什么是异常
8.2 按自己的方式出错
8.2.1 raise语句
8.2.2 自定义异常类
8.3 捕捉异常
8.4 不止一个except子句
8.5 用一个块捕捉两个异常
8.6 捕捉对象
8.7 真正的全捕捉
8.8 万事大吉
8.9 最后……
8.10 异常和函数
8.11 异常之禅
8.12 小结
8.12.1 本章的新函数
8.12.2 接下来学什么
第9章 魔法方法、属性和迭代器
9.1 准备工作
9.2 构造方法
9.2.1 重写一般方法和特殊的构造方法
9.2.2 调用未绑定的超类构造方法
9.2.3 使用super函数
9.3 成员访问
9.3.1 基本的序列和映射规则
9.3.2 子类化列表,字典和字符串
9.4 更多魔力
9.5 属性
9.5.1 property函数
9.5.2 静态方法和类成员方法
9.5.3 __getattr__、__setattr__和它的朋友们
9.6 迭代器
9.6.1 迭代器规则
9.6.2 从迭代器得到序列
9.7 生成器
9.7.1 创建生成器
9.7.2 递归生成器
9.7.3 通用生成器
9.7.4 生成器方法
9.7.5 模拟生成器
9.8 八皇后问题
9.8.1 生成器和回溯
9.8.2 问题
9.8.3 状态表示
9.8.4 寻找冲突
9.8.5 基本情况
9.8.6 需要递归的情况
9.8.7 打包
9.9 小结
9.9.1 本章的新函数
9.9.2 接下来学什么
第10章 自带电池
10.1 模块
10.1.1 模块是程序
10.1.2 模块用于定义
10.1.3 让你的模块可用
10.1.4 包
10.2 探究模块
10.2.1 模块中有什么
10.2.2 用help获取帮助
10.2.3 文档
10.2.4 使用源代码
10.3 标准库:一些最爱
10.3.1 sys
10.3.2 os
10.3.3 fileinput
10.3.4 集合、堆和双端队列
10.3.5 time
10.3.6 random
10.3.7 shelve
10.3.8 re
10.3.9 其他有趣的标准模块
10.4 小结
10.4.1 本章的新函数
10.4.2 接下来学什么
第11章 文件和流
11.1 打开文件
11.1.1 文件模式
11.1.2 缓冲
11.2 基本的文件方法
11.2.1 读和写
11.2.2 管式输出
11.2.3 读写行
11.2.4 关闭文件
11.2.5 使用基本文件方法
11.3 对文件内容进行迭代
11.3.1 按字节处理
11.3.2 按行操作
11.3.3 读取所有内容
11.3.4 使用fileinput实现懒惰行迭代
11.3.5 文件迭代器
11.4 小结
11.4.1 本章的新函数
11.4.2 接下来学什么
第12章 图形用户界面
12.1 丰富的平台
12.2 下载和安装wxPython
12.3 创建示例GUI应用程序
12.3.1 开始
12.3.2 窗口和组件
12.3.3 标签、标题和位置
12.3.4 更智能的布局
12.3.5 事件处理
12.3.6 完成了的程序
12.4 但是我宁愿用……
12.4.1 使用Tkinter
12.4.2 使用Jython和Swing
12.4.3 使用其他开发包
12.5 小结
第13章 数据库支持
13.1 Python数据库编程接口(API)
13.1.1 全局变量
13.1.2 异常
13.1.3 连接和游标
13.1.4 类型
13.2 SQLite和PySQLite
13.2.1 入门
13.2.2 数据库应用程序示例
13.3 小结
13.3.1 本章的新函数
13.3.2 接下来学什么
第14章 网络编程
14.1 少数几个网络设计模块
14.1.1 socket模块
14.1.2 urllib和urllib2模块
14.1.3 其他模块
14.2 SocketServer和它的朋友们
14.3 多个连接
14.3.1 使用SocketServer进行分叉和线程处理
14.3.2 带有select和poll的异步I/O
14.4 Twisted
14.4.1 下载并安装Twisted
14.4.2 编写Twisted服务器
14.5 小结
14.5.1 本章的新函数
14.5.2 接下来学什么
第15章 Python和Web
15.1 屏幕抓取
15.1.1 Tidy和XHTML解析
15.1.2 Beautiful Soup
15.2 使用CGI创建动态网页
15.2.1 第一步:准备网络服务器
15.2.2 第二步:加入Pound Bang行
15.2.3 第三步:设置文件权限
15.2.4 CGI安全风险
15.2.5 简单的CGI脚本
15.2.6 使用cgitb调试
15.2.7 使用cgi模块
15.2.8 简单的表单
15.3 更进一步:mod_python
15.3.1 安装mod_python
15.3.2 CGI处理程序
15.3.3 PSP
15.3.4 发布
15.4 网络应用程序框架
15.5 Web服务:正确分析
15.5.1 RSS和相关内容
15.5.2 使用XML-RPC进行远程过程调用
15.5.3 SOAP
15.6 小结
15.6.1 本章的新函数
15.6.2 接下来学什么
第16章 测试
16.1 先测试,后编码
16.1.1 精确的需求说明
16.1.2 为改变而计划
16.1.3 测试的4个步骤
16.2 测试工具
16.2.1 doctest
16.2.2 unittest
16.3 单元测试以外的内容
16.3.1 使用PyChecker和PyLint检查源代码
16.3.2 性能分析
16.4 小结
16.4.1 本章的新函数
16.4.2 接下来学什么
第17章 扩展Python
17.1 考虑哪个更重要
17.2 非常简单的途径:Jython和IronPython
17.3 编写C语言扩展
17.3.1 SWIG
17.3.2 自己研究
17.4 小结
17.4.1 本章的新函数
17.4.2 接下来学什么
第18章 程序打包
18.1 Distutils基础
18.2 打包
18.2.1 建立存档文件
18.2.2 创建Windows安装程序或RPM包
18.3 编译扩展
18.4 使用py2exe创建可执行程序
18.5 小结
18.5.1 本章的新函数
18.5.2 接下来学什么
第19章 好玩的编程
19.1 为什么要好玩
19.2 程序设计的柔术
19.3 原型设计
19.4 配置
19.4.1 提取常量
19.4.2 配置文件
19.5 日志记录
19.6 如果还没烦
19.7 如果还想学
19.8 小结
第20章 项目1:即时标记
20.1 问题是什么
20.2 有用的工具
20.3 准备工作
20.4 初次实现
20.4.1 找出文本块
20.4.2 添加一些标记
20.5 再次实现
20.5.1 处理程序
20.5.2 处理程序的超类
20.5.3 规则
20.5.4 规则的超类
20.5.5 过滤器
20.5.6 分析器
20.5.7 构造规则和过滤器
20.5.8 整合
20.6 进一步探索
第21章 项目2:画幅好画
21.1 问题
21.2 有用的工具
21.3 准备工作
21.4 初次实现
21.4.1 用ReportLab画图
21.4.2 生成折线
21.4.3 编写原型
21.5 再次实现
21.5.1 获取数据
21.5.2 使用LinePlot类
21.6 进一步探索
第22章 项目3:万能的XML
22.1 问题
22.2 有用的工具
22.3 准备工作
22.4 初次实现
22.4.1 创建简单的内容处理器
22.4.2 生成HTML页面
22.5 再次实现
22.5.1 调度程序的混入类
22.5.2 实现首部、页脚和默认的处理程序
22.5.3 对目录的支持
22.5.4 事件处理程序
22.6 进一步探索
第23章 项目4:新闻聚合
23.1 问题
23.2 有用的工具
23.3 准备工作
23.4 初次实现
23.5 再次实现
23.6 进一步探索
第24章 项目5:虚拟茶话会
24.1 问题
24.2 有用的工具
24.3 准备工作
24.4 初次实现
24.4.1 ChatServer类
24.4.2 ChatSession类
24.4.3 整合
24.5 再次实现
24.5.1 基础命令解释
24.5.2 房间
24.5.3 登录和退出房间
24.5.4 主聊天室
24.5.5 新的服务器
24.6 进一步探索
第25章 项目6:使用CGI进行远程编辑
25.1 问题
25.2 有用的工具
25.3 准备工作
25.4 初次实现
25.5 再次实现
25.5.1 创建文件名表单
25.5.2 创建编辑器的脚本
25.5.3 编写保存脚本
25.5.4 运行编辑器
25.6 进一步探索
第26章 项目7:自定义电子公告板
26.1 问题
26.2 有用的工具
26.3 准备工作
26.4 初次实现
26.5 再次实现
26.5.1 编写Main脚本
26.5.2 编写View脚本
26.5.3 编写Edit脚本
26.5.4 编写Save脚本
26.5.5 尝试使用
26.6 进一步探索
第27章 项目8:使用XML-RPC进行文件共享
27.1 问题
27.2 有用的工具
27.3 准备工作
27.4 初次实现
27.4.1 实现一个简单的节点
27.4.2 尝试使用首次实现
27.5 再次实现
27.5.1 创建客户端界面
27.5.2 引发异常
27.5.3 验证文件名
27.5.4 尝试使用再次实现
27.6 进一步探索
第28章 项目9:文件共享2——GUI版本
28.1 问题
28.2 有用的工具
28.3 准备工作
28.4 初次实现
28.5 再次实现
28.6 进一步探索
第29章 项目10:DIY街机游戏
29.1 问题
29.2 有用的工具
29.2.1 pygame
29.2.2 pygame.locals
29.2.3 pygame.display
29.2.4 pygame.font
29.2.5 pygame.sprite
29.2.6 pygame.mouse
29.2.7 pygame.event
29.2.8 pygame.image
29.3 准备工作
29.4 初次实现
29.5 再次实现
29.6 进一步探索
附录A 简明版本
附录B Python参考手册
附录C 在线资源
附录D Python 3.0