y几周,示例-导图

本书的前提和努力

为本书给出绝对的前提条件是不可能的,因为它的实用性和价值取决于读者的动机和背景。真正的初学者和脾气暴躁的编程老手都成功地使用过本书。如果你真的想学 Python 并愿意投入所需的时间和精力,本书很可能适合你。 学习 Python 需要多少时间呢?虽然这因人而异,但这本书在(认真)阅读时效果最好。一些读者可能将本书作为一本按需的参考资料来使用,但大部分想精通 Python 的人需要准备花至少几个星期,很可能几个月来过一遍本书,具体时间取决于它们有多么紧密地跟着本书的例子来练习。就像我曾经说过的,本书大体上等同于 Python 语言本身的一整个学期的课程。 这只是对学习 Python 本身和需要使用好它的软件技巧的时间估计。虽然本书对基本的编写脚本可能足够了,但希望将软件开发作为职业生涯的读者,应该准备在读完本书后,将额外的时间投入到大规模的项目实践中,投入到接下来的书籍如 Programming Python 中。 这对希望快速精通的人不是好消息。但是编程不是一个很容易的技巧(尽管你可能听说这是容易的)。现在的 Python 还有通用意义上的软件都具有足够的挑战性和激励性,值得投入像本书这样全面性书籍所暗示的努力。下面是对两种经验的读者如何使用这本书的一些指导:

对有经验的程序员

你会有初始的优势,在早期的章节会学习得更快。但是你不应该漏掉核心的理念,并且可能需要丢掉一些包袱。一般来说,在本书之前就有编程或脚本的经验可能会有帮助,因为它能提供类比。另一方面,我也发现之前的编程经验可能会是一个阻碍,因为从其它语言产生的过多期待。太容易发现 Java 或者 C++ 的程序员他们写的第一个 Python 代码就是在类中。要使用好 Python 需要采用它的思维方式。本书关注关键的核心概念,设计来帮助你学好编写 Python 式的 Python 代码。

对真正的初学者

你可以学好 Python 还有编程本身,但是你可能需要工作得更努力一点,可能希望有更友好的入门介绍来弥补本书。如果你不认为自己已经是一个程序员,你可能也会发现一本书很有用,但是你一定要慢慢地前进,一路上把所有的例子和练习搞懂。记住,本书会花更多的时间讲授 Python 本身,而不是编程基础知识。如果你发现自己迷失在这里,我鼓励你去探索一下一般的编程入门,再来学习这本书。 Python 的网站上有许多对初学者有用的资料。 本书旨在作为所有初学者的第一本 Python 书籍。但是它可能不是对那些从来没有接触过电脑的人的理想学习资料。比如我们不会花时间来探索什么是电脑,但是我没有对你的编程背景和教育做任何假设。 另一方面,我不会假设我的读者是 “笨蛋” 或者其它不管什么称呼来侮辱他们。在 Python 里很容易做有用的事情,本书将向你展示怎么做。本书有时将 Python 和其它语言比如 C++,Java 等等做对比。但是如果你之前没有使用过这些语言,你可以安全地忽略掉这些对比。
标准免责声明:我写了这本书和之前提到的另外的一本书,它们两个作为一套书:Learning Python 是针对语言的基础,Programming Python 是应用基础,Python Pocket Reference 是和它们两个一起的。所有的这三本都起源于 1995 年的原版和宽泛的 Programming Python。我鼓励你学习目前可用的许多 Python 书籍。在亚马逊上我数到 200 就停止了,因为一望无尽。并且这还没有包括 Django 相关的主题。最近我的出版商出版了以 Python 为重点的关于控制仪器,数据挖掘,App 引擎,数字分析,自然语言处理,MongoDB,AWS 还有更多特定领域的书籍。一旦你在这里掌握了 Python 语言的基础,就会希望探索这些书籍。目前 Python 的故事已经太过于丰富,以至于没有任何一本书可以单独地论述它们。 本文中书籍的链接已失效,会跳转到错误的页面 本文章首发在 LearnKu.com 网站上。

上一篇下一篇

Markdown 文本

纠错改进

本书的结构

为了引导你,本节提供了一个对大部分内容和目标的快速总结。如果你急着读这些内容,可以随意地跳过本章节(或者浏览目录作为代替)。然而对于一些读者,一本这样大的书可以是值得提前阅读一个简短的路线图的。 从设计上来说,每个大的部分覆盖了语言的一个主要功能区域。每个部分是由章节组成,章节关注一个具体的主题或这个大的部分区域的一部分。另外每一章都以小测验和它们的答案作为结尾。每一个大的部分都以一个更大的练习作为结尾,这些练习的答案在附录 B 中出现。

0.3 结构 - 图1

注意,练习很重要。我强烈推荐读者做完本书的所有小测验和练习。如果你可以,请大致阅读完它的所有的例子。对你读到的东西进行练习是不可替代的。如果你想本书中展示的理念深入到你的脑海中,不管是练习这本书还是自己的一个项目,真正的编程都是至关重要的。 整体上本书的展示是从底向上的,因为 Python 也是这样。示例和主题随着我们的推进会越来越有挑战性。比如 Python 的类在很大程度上就只是处理内置类型的函数的包,一旦你精通了内置类型和函数,类就变得变成一个相对小的智力飞跃。因为每个大部分都是在以这种方式在它之前的部分上建立起来的,大部分的读者会发现循序渐进地阅读会最简单。 下面是你将在阅读过程中碰到的本书主要部分的一个预览:

本书的结构 —— 主要部分的预览 —— 第一部分到第五部分

第一部分

从 Python 的概览开始,回答常见的初始问题 —— 为什么人们使用这门语言,它有什么用等等。第一章介绍了技术下面的主要理念,给你一些背景上下文,这部分的剩下的内容逐步探索 Python 和程序员运行程序的方式。这里的主要目标是给你足够的信息,以便能够跟上后面的例子和练习。

第二部分

开始我们的 Python 语言之旅,学习 Python 主要的内置对象类型和你可以用它们来深度地做什么:数字列表、字典等等。单独用这些工具你就可以做很多事情,并且它们是每一个 Python 脚本的核心。这是这本书中最重要的部分。因为我们在为后面的章节打下地基。这里还探索了动态类型和它的引用 —— 这是用好 Python 的关键。

第三部分

这一部分继续介绍 Python 的语句 —— 这是你输入的用来在 Python 中创建和处理对象的代码。它也展示了 Python 的基本语法模型。虽然这一章关注的是语法,但是它也介绍了一些相关的工具,比如 PyDoc 系统。第一次学习了迭代的概念,探索了其它的编程方案。

第四部分

这一章开始学习 Python 的高级的程序结构工具。函数被证明是一个包裹代码用来重用和避免代码冗余的简单方式。在这一部分探索 Python 的作用域规则,参数传参的技术,还有有时臭名昭著的 lambda 表达式等等。我们还从函数式编程的角度重新学习迭代器,引入了自定义的生成器,学习如何对 Python 代码计时来测量它的性能。

第五部分

Python 的模块让你将语句和函数组织为更大的组件。这个部分展示了如何创建,使用,加载模块,还学习了一些更高级的主题,比如模块包,模块重载,包的相对引入,3.3 的新命名空间包,还有 <font style="color:rgb(133, 128, 128);background-color:rgb(249, 250, 250);">__name__</font> 变量。 本文章首发在 LearnKu.com 网站上。

上一篇下一篇

Markdown 文本

纠错改进


本书的结构 —— 主要部分的预览 —— 第六部分到第九部分

第六部分

探索 Python 面向对象的编程工具,类 —— 一个可选但强大的构建自定义和重用代码的方式,它几乎自然地最小化了冗余。如你将看到的那样, class 大部分重用了到目前这本书覆盖的理念,并且 Python 的 OOP 大多是关于如何使用函数中一个特殊的第一参数(self)来查找链接对象中的名称。如你将看到的,在 Python 中 OOP 是可选的。但是大多数人发现 Python 的 OOP 比其它语言的要简单得多,而且它能大幅度地减少部署时间。特别对长期的战略项目发展而言。

第七部分

在这里,通过学习 Python 的异常处理模型和语句结束了语言的基础部分。再加上开发工具的一个简短的概览。在当你开始编写更大程序(比如调试和测试工具)的时候会变得更有用。虽然异常是一个相对轻量级的工具,但这部分在类的讨论之后出现。因为用户定义的异常现在应该全是类。还覆盖了一些更高级的主题,比如上下文管理器等。

第八部分

在最后的这个部分,探索了一些高级主题:Unicode 和字节字符串,被管理的特性工具如属性和描述符,函数和类的装饰器,还有元类(定义类的类)。这些章节都是可选的,因为不是所有的程序员需要理解它们描述的这些主题。另一方面,必须处理国际化文本和或二进制数据的读者,或者负责开发 API 给其它程序员使用的读者应该发现这部分有些价值。这里的例子比本书中大部分的例子都要大,而且能作为自学的材料。

第九部分

本书以一个包含四个附录的部分结束。它给了在不同电脑上安装和使用 Python 的平台相关的提示;展示了与 Python 3.3 一起发行的新的 Windows 安装程序;总结了 Python 最近版本的变更,并且给出了讨论这些变更的链接;最后提供了每一部分末尾练习的答案,章节末尾的小练习的答案出现在章节的内部。 参见目录表以更详尽的了解本书的各部分。

本书不是什么 —— 不是一本参考书

考虑到这些年本书相对庞大的读者,有人不可避免地期待它拥有超出它范围的作用。所以既然我已经告诉你这本书是什么,我还想澄清它不是什么:
  • 这本书是一门教程,不是一本参考书。
  • 这本书涵盖了语言本身,但不涵盖应用标准库或第三方工具。
  • 本书是一本针对一个重要主题的全面审视,而不是一个缩水的总览。
因为这些要点对本书的内容很关键,我想提前多说几句,

它不是一本参考书或一本特定应用的指南

本书是一个语言教程,不是一本参考书或一本应用书。这是故意的:当前的 Python—— 有它自己内置的类型,生成器,闭包,comprehension,Unicode,装饰器和以及过程化的,面向对象的和函数化编程范式的混合 —— 使得核心语言本身就是一个重要的主题,也是你未来所有 Python 工作的前提,不管你追求的是哪一个领域。然而,当你准备获取其它资源时,这里是一些建议和提醒:

参考资源

如前面结构描述暗示的那样,你可以使用索引和目录来寻找细节。但是本书没有参考附录。如果你在寻找 Python 参考资源(大多数的读者很可能会很快开始它们的 Python 生涯),我建议之前提到的也是我写的那本 Python Pocket Reference 作为本书的配套,还有其它你通过快速搜索找到的参考书,和在 Python 官网上维护的标准 Python 参考手册。后面这个是免费的,总是最新的,并且在 windows 安装之后,在网络和你的电脑上都可用。

应用和库

如前所述,本书不是对特定应用如 Web,GUIs 或系统编程的指南。在一定程度上,这包括应用程序工作中使用的库和工具。虽然这里介绍了一些标准库和工具 —— 包括 shelve, pickle, struct, json, pdb, os, urllib, re, xml, random,
PyDoc 和 IDLE,但是它们并不在本书主要范围之内。如果你正在找寻关于这些主题的更多资料,并且已经精通了 Python,我推荐接下来的这本书 Programming Python 等等。虽然,那本书假定这本书是它的前提,所以确保你首先牢牢地掌握了核心语言。一个人在跑之前必须先会走,特别是在像软件这样的工程领域。