本书是Python编程语言的一份简明参考。尽管有经验的程序员也可以通过本书学习Python语言,但本书并不是一本讲述如何编程的全面教程或专著。相反,本书的目标是准确而简练地介绍Python语言核心以及Python库中最关键的部分。本书假定读者以前拥有Python或其他语言(如C或Java)的编程经验。另外,对系统编程(例如基本的操作系统概念和网络编程)有大致的了解对理解Python库参考中的部分章节可能会有一定的帮助。
本书的这一版是在Python发展的关键时刻面世的。Python 2.6和Python 3.0几乎是同时发布的,但Python 3与以前的版本并不兼容。作为一名作者和程序员,我面临着一个两难问题:是直接跳到Python 3.0,还是使用大多数程序员更为熟悉的Python 2.x版本?
多年前,在应该使用哪些语言特性的问题上,身为C程序员的我经常把某些书当作终极权威。例如,使用K&R书中未曾提到过的某些特性很可能导致程序无法移植,因此得格外谨慎。作为程序员,这种方法对我非常有效,因此我决定在本书的这个版本中沿用这一做法。也就是说,这一版删除了Python 3中已经不再支持的Python 2特性。类似地,我也没有关注Python 3中不能向后兼容的特性(尽管附录中仍然会介绍这些特性)。最终,我希望,无论使用的是哪个版本的Python,本书都能够成为Python程序员案头必备的参考书。
这一版还包含自第1版出版至今10余年来最激动人心的一些变化。在过去的数年间,Python的发展重点体现在新的语言特性上——特别是与函数式编程和元编程相关的特性。因此,讲述函数式编程和面向对象编程的章节得到了极大的扩充,包括的主题有生成器、迭代器、协程、装饰器和元类。讲述库的章节则将重点转移到更加现代的模块上。整本书中的示例和代码片段都做了更新。我认为大多数程序员会对扩充之后的内容感到满意。
最后值得一提的是,Python本身已经有数千页有用的文档。本书的内容在很大程度上是基于这些文档的,但又有很多关键的区别。首先,这本书提供信息的方式更加紧凑,使用不同的示例,并对很多主题提供了不同的描述。其次,Python库参考部分的大量主题都做了扩充,包含很多外部的参考资料。底层系统和网络模块尤其如此,因为对这些模块的有效使用往往依赖于手册和外部参考中列出的种种选项。另外,为了使参考手册更加简明,这一版还删掉了很多已经废弃和相对晦涩的库模块。
我的目标是写出一本真正包含使用Python及其众多模块所需的一切内容的参考手册。尽管这并不是一本介绍Python语言的百科全书,但我希望本书能成为你未来数年里一本有用的必备编程参考书。十分欢迎读者对本书提出意见和建议。
David Beazley
2009年6月
于伊利诺伊州芝加哥
[第一部分 Python语言第1章 Python简介1.1 运行Python](https://yq.aliyun.com/articles/91596/)1.2 变量和算术表达式1.3 条件语句1.4 文件输入和输出1.5 字符串1.6 列表1.7 元组1.8 集合1.9 字典1.10 迭代与循环1.11 函数1.12 生成器1.13 协程1.14 对象与类1.15 异常1.16 模块1.17 获得帮助[第2章 词法约定和语法2.1 行结构和缩进](https://yq.aliyun.com/articles/91738/)2.2 标识符和保留字2.3 数字字面量2.4 字符串字面量2.5 容器2.6 运算符、分隔符及特殊符号2.7 文档字符串2.8 装饰器2.9 源代码编码第3章 类型与对象第4章 运算符与表达式第5章 程序结构与控制流第6章 函数与函数式编程第7章 类与面向对象编程第8章 模块、包与分发第9章 输入与输出第10章 执行环境第11章 测试、调试、探查与调优第二部分 Python库第12章 内置函数和异常第13章 Python运行时服务第14章 数学运算第15章 数据结构、算法与代码简化第16章 字符串和文本处理第17章 Python数据库访问第18章 文件和目录处理第19章 操作系统服务第20章 线程与并发第21章 网络编程和套接字第22章 网络应用程序编程第23章 Web编程第24章 网络数据处理和编码第25章 其他库模块第三部分 扩展与嵌入第26章 扩展与嵌入Python附录 Python 3
相关资源:Python参考手册 第4版_修订版