章节 1,4 ,10,26,28
本书不是什么 —— 不是给那些匆忙的人的短篇小说
从本书的大小就可以看出来,它在细节上不会吝惜笔墨:它呈现了整个 Python 语言,而不是对简化子集的简要介绍。同时,它还涵盖了编写良好 Python 代码的必要软件原则。如前面提到的,这是一本需要花费多周甚至多月的书,被设计来传授你在一整学期的 Python 课上能够获得的技能水平。 这也是故意的。当然,本书的许多读者没有必要获得全面的软件开发技能,并且一些人可以用碎片化的方式来学习理解 Python。同时。因为语言的任何一部分都可能会被用在你将碰到的代码中。因此对大部分的程序员,没有哪一部分是真的可选的。而且,即使临时的脚本程序员和爱好者也需要知道软件开发的基本原则,以更好地编程,甚至是为了恰当地使用预编码的工具。 为了有用,本书旨在以足够的深度解决语言和原则这两个需求。不过最终你会发现,一旦你精通了 Python 基础(只要你一次一章的读完本书,你就肯定可以),Python 的更多高级工具,比如它的面向对象和函数化编程支持学起来都是相对简单的。 本文章首发在 LearnKu.com 网站上。本书不是什么 —— 尽可能如 Python 所允许的那样循序渐进
说到阅读顺序,这个版本也是努力减少向前引用。但 Python 3.X 的变化使得这在某些情况下是不可能的。事实上, Python 3.X 有时似乎假设当你在学它的时候就已经懂得了 Python。举几个代表性的例子:- 打印,排序,字符串
<font style="color:rgb(133, 128, 128);background-color:rgb(249, 250, 250);">format</font>
方法,还有一些依赖于函数 keyword 参数 的<font style="color:rgb(133, 128, 128);background-color:rgb(249, 250, 250);">dict</font>
调用。 - 字典键列表和测试,还有在许多工具里使用的
<font style="color:rgb(133, 128, 128);background-color:rgb(249, 250, 250);">list</font>
调用都暗示了 iteration 的概念。 - 使用
<font style="color:rgb(133, 128, 128);background-color:rgb(249, 250, 250);">exec</font>
来运行代码,这假定了知道 file objects 和 interfaces。 - 编码新的 exception 需要 classes 和 OOP 基础
- 如此等等 —— 甚至基本的 inheritance 也引出高级的主题,如 metaclasses 和 descriptors。
注意
如果你的时间很紧,虽然深度对于精通 Python 是至关重要的,但一些读者可能时间有限。如果你对快速浏览 Python 感兴趣,我建议读第一章、第四章、第十章、第二十八章(可能还有第二十六章)。一个有希望激起你对本书剩下部分中的完整故事的兴趣,且是大多数读者将在现今的 Python 软件世界中需要的简短考察。总的来说,本书是故意按这种方式来构建,使得它的材料更容易被吸收。引言在前,细节在后,所以你可以从概述开始,随着时间挖掘得越来越深。你不需要一次读完本书,但是它循序渐进的方法是为了帮助你最终掌握其内容。本书的程序
总的来说,本书一直致力于对 Python 版本和平台保持中立。它旨在对所有 Python 用户都有用。尽管如此,由于 Python 随时间改变,平台在实际应用中往往有所不同,因此我需要描述您在大多数示例中将看到的具体系统。Python 版本
本书的第五版和所有程序示例均基于 Python 3.3 和 2.7。此外,它的许多示例在先前的 3.X 和 2.X 版本下运行,在使用过程中还混合了早期版本语言变化历史的注释,供旧 Python 用户使用。 因为本书关注的是核心语言,像之前提到的,你可以相当确定它说的大部分内容都不会在未来的 Python 版本中有很大的变化。本书的大部分也适用于早期的 Python 版本,但也有例外。当然,如果你尝试使用在当前你正在使用的发行版之后才添加的扩展,是什么情况就无法预料了。根据经验,如果你能升级,最新的 Python 就是最好的 Python。 因为本书关注核心语言,它的大部分也适用于基于 Java 和 .net 的 Python 语言实现的 Jython 和 IronPython,还有其它的 Python 实现,如 Stackless 和 PyPy(第 2 章描述)。这些替代实现主要是在使用细节上不同,而不是语言。平台
本书中的示例在 Windows 7 和 8 超级本上运行,尽管 Python 的可移植性使这在很大程度上都是无关紧要的,特别是在这本关注基础知识的书中。您会注意到一些 Windows 专有的东西,包括命令行提示符、几张屏幕截图、安装提示和 3.3 中新 Windows 启动器的附录,但这反映了大多数 Python 新手可能会在这个平台上开始的事实,而这些对于其他操作系统的用户来说都可以安全忽略。 我还给出了其他平台(如 Linux)的一些启动细节,如 “#!” 行的使用,但正如我们将在第 3 章和附录 B 中看到的,3.3 Windows 启动器使这成为了一种更可移植的技术。获取本书的代码
本书例子的源代码以及练习解答可以从以下地址获取书籍网站上的 zip 文件:resources.oreilly.com/examples/063…
该网站包含本书中所有代码以及包使用说明,因此我将推迟更多细节。当然,示例在本书中的出现上下文下工作最好,您需要一些运行 Python 程序的背景知识来使用它们。我们将在第 3 章中研究启动细节,因此请继续关注这方面的信息。Learning Python 5th Edition, by Mark Lutz
The following applies to example files from material published by O’Reilly Media, Inc. Content from other publishers may include different rules of usage. Please refer to any additional usage rights explained in the actual example files or refer to the publisher’s website.
O’Reilly books are here to help you get your job done. In general, you may use the code in O’Reilly books in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from our books does not require permission. Answering a question by citing our books and quoting example code does not require permission. On the other hand, selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Incorporating a significant amount of example code from our books into your product’s documentation does require permission.
We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN.
If you think your use of code examples falls outside fair use or the permission given here, feel free to contact us at permissions@oreilly.com.
Please note that the examples are not production code and have not been carefully tested. They are provided “as-is” and come with no warranty of any kind.
使用本书的代码
我的 Python 书中的代码旨在教学,当它能够帮助读者实现这一目标时,我很高兴。O’Reilly 本身对重用书中的例子有一个官方政策,我已经将它粘贴到本节的其余部分以供参考:这本书是为了帮助您完成您的工作而来的。一般来说,您可以在您的程序和文档中使用本书中的代码。除非您重复了大量代码,否则您不需要与我们联系获得许可。例如,编写一个使用本书中的几个代码块的程序不需要许可。出售或分发 O’Reilly 书籍中的示例的 CD-ROM 需要许可。通过引用本书并引用示例代码来回答问题不需要许可。将本书中的大量示例代码并入您的产品文档需要许可。
我们感激但不要求归因。归因通常包括标题、作者、出版商和 ISBN。例如:“学习 Python,第五版,作者 Mark Lutz。版权所有 2013 Mark Lutz,978-1-4493-5573-9”
如果您认为您使用代码示例超出了公平使用或上述许可,请随时与我们联系 permissions@oreilly.com。
字体约定
当然,一旦你开始阅读本书,它的机制就会变得更加易懂,但作为参考,本书使用以下排版约定:斜体
固定宽度
用于电子邮件地址、URL、文件名、路径名,以及在首次介绍时强调新术语
用于程序代码,文件内容和命令输出,以及指定模块、方法、语句和系统命令。
粗体固定宽度
在代码部分中使用,显示用户键入的命令或文本,偶尔用于突出部分代码。
固定宽度斜体
用于代码部分中的可替换项和一些注释。
注意
表示与附近文本相关的提示、建议或注意事项。警告
表示与附近文本相关的警告或注意事项。书籍更新与资源
改进是可能的(错误也是)。此书的更新、补充和更正(即错误)将在 Web 上维护,并可能在出版商的网站或电子邮件中提出。以下是主要坐标:出版商的网站
www.oreilly.com/library/view/learn…
该网站将维护本版书籍错误的官方清单,并记录在重印时文本中应用的特定补丁。它也是本书前面描述的示例的官方网站。作者的网站
www.rmi.net/~lutz/about-lp5e.html
该网站将用于发布与本文或 Python 本身相关的更一般的更新,以应对未来的变化,这应被视为本书的一种虚拟附录。 我的出版商还有一个电子邮件地址,用于接收关于本书的评论和技术问题: bookquestions@oreilly.com 有关我出版商的书籍、会议、资源中心和 O’Reilly 网络的更多信息,请参见其通用网站: 有关我的书籍的更多信息,请参见我自己的书籍支持网站: 如果前面的链接随着时间的推移变得无效,也要务必在网上搜索;如果我能变得更加先知,我一定会的,但 Web 的变化速度比出版的书籍快得多。 作者的网站已更改为:learning-python.com/index.html

