Python教程
**********

Python是一种易于学习又功能强大的编程语言。它提供了高效的高层次的数据结
构，还有简单有效的面向对象编程。Python优雅的语法和动态类型，以及解释型
语言的本质，使它成为多数平台上写脚本和快速开发应用的理想语言。

多数平台上的Python解释器以及丰富的标准库的源码和执行文件，都可以在
Python官网，https://www.python.org/，免费自由地下载。这个网站上也提供
一些链接，包括第三方Python模块、程序、工具等，以及额外的文档。

Python解释器易于扩展，可以使用C或C++（或者其他可以从C调用的语言）扩展
新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。

这个教程非正式地介绍Python语言和系统的基本概念和功能。最好在阅读的时候
有一个Python解释器做一些练习，不过所有的例子都是相互独立的，所以这个教
程也可以离线阅读。

有关标准的对象和模块，参阅 Python 标准库。Python 语言参考 提供了更正式
的语言参考。要写C或者C++扩展，参考 Extending and Embedding the Python
Interpreter 和 Python/C API 参考手册。也有不少书籍深入讲解Python。

这个教程并没有完整包含每一个功能，甚至常用功能可能也没有全部涉及。这个
教程只介绍Python中最值得注意的功能，也会让你体会到这个语言的风格特色。
学习完这个教程，你将可以阅读和编写Python模块和程序，也可以开始学习更多
的Python库模块，详见 Python 标准库。

术语表 也很值得阅读一下。

* 1. 课前甜点

* 2. 使用 Python 解释器

  * 2.1. 调用解释器

    * 2.1.1. 传入参数

    * 2.1.2. 交互模式

  * 2.2. 解释器的运行环境

    * 2.2.1. 源文件的字符编码

* 3. Python 的非正式介绍

  * 3.1. Python 作为计算器使用

    * 3.1.1. 数字

    * 3.1.2. 字符串

    * 3.1.3. 列表

  * 3.2. 走向编程的第一步

* 4. 其他的流程控制

  * 4.1. "if" 语句

  * 4.2. "for" 语句

  * 4.3. "range()" 函数

  * 4.4. "break" 和 "continue" 语句, 和循环的 "else" 子句

  * 4.5. "pass" 语句

  * 4.6. 给函数定义

  * 4.7. 函数定义的更多形式

    * 4.7.1. 参数默认值

    * 4.7.2. 关键字参数

    * 4.7.3. 任意的参数列表

    * 4.7.4. 参数列表的展开

    * 4.7.5. Lambda 表达式

    * 4.7.6. 文档字符串

    * 4.7.7. 函数的注解

  * 4.8. 小插曲: 编码风格

* 5. 数据结构

  * 5.1. 列表的更多特性

    * 5.1.1. 列表作为栈使用

    * 5.1.2. 列表作为队列使用

    * 5.1.3. 列表推导式

    * 5.1.4. 嵌套的列表推导式

  * 5.2. "del" 语句

  * 5.3. 元组和序列

  * 5.4. 集合

  * 5.5. 字典

  * 5.6. 循环的技巧

  * 5.7. 深入条件控制

  * 5.8. 序列和其它类型的比较

* 6. 模块

  * 6.1. 有关模块的更多信息

    * 6.1.1. 以脚本的方式执行模块

    * 6.1.2. 模块搜索路径

    * 6.1.3. “编译过的”Python文件

  * 6.2. 标准模块

  * 6.3. "dir()" 函数

  * 6.4. 包

    * 6.4.1. 使用 * 导入

    * 6.4.2. 子包参考

    * 6.4.3. 多个目录中的包

* 7. 输入输出

  * 7.1. 更漂亮的输出格式

    * 7.1.1. Old string formatting

  * 7.2. Reading and Writing Files

    * 7.2.1. Methods of File Objects

    * 7.2.2. Saving structured data with "json"

* 8. 错误和异常

  * 8.1. 语法错误

  * 8.2. 异常

  * 8.3. Handling Exceptions

  * 8.4. Raising Exceptions

  * 8.5. User-defined Exceptions

  * 8.6. Defining Clean-up Actions

  * 8.7. Predefined Clean-up Actions

* 9. 类

  * 9.1. 名称和对象

  * 9.2. Python 作用域和命名空间

    * 9.2.1. 作用域和命名空间示例

  * 9.3. 初探类

    * 9.3.1. 类定义语法

    * 9.3.2. 类对象

    * 9.3.3. 实例对象

    * 9.3.4. 方法对象

    * 9.3.5. 类和实例变量

  * 9.4. 补充说明

  * 9.5. 继承

    * 9.5.1. 多重继承

  * 9.6. 私有变量

  * 9.7. 其余琐碎

  * 9.8. 迭代器

  * 9.9. 生成器

  * 9.10. 生成器表达式

* 10. 标准库简介

  * 10.1. 操作系统接口

  * 10.2. 文件通配符

  * 10.3. 命令行参数

  * 10.4. 错误输出重定向和程序终止

  * 10.5. 字符串模式匹配

  * 10.6. 数学

  * 10.7. 互联网访问

  * 10.8. 日期和时间

  * 10.9. 数据压缩

  * 10.10. 性能测量

  * 10.11. 质量控制

  * 10.12. 包含电池

* 11. 标准库简介 —— 第二部分

  * 11.1. 输出格式

  * 11.2. 模板

  * 11.3. 使用二进制数据记录格式

  * 11.4. 多线程

  * 11.5. 日志Logging

  * 11.6. Weak References

  * 11.7. Tools for Working with Lists

  * 11.8. 十进制浮点运算

* 12. 虚拟环境和包

  * 12.1. 概述

  * 12.2. 创建虚拟环境

  * 12.3. 使用pip管理包

* 13. 接下来？

* 14. 交互式编辑和编辑历史

  * 14.1. Tab 补全和编辑历史

  * 14.2. 默认交互式解释器的替代品

* 15. 浮点算术：争议和限制

  * 15.1. Representation Error

* 16. 附录

  * 16.1. 交互模式

    * 16.1.1. 错误处理

    * 16.1.2. 可执行的Python脚本

    * 16.1.3. 交互式启动文件

    * 16.1.4. 定制模块
