前 言 欢迎使用Python 3.1! 我使用Python已有10年左右,每一个新版本都使我越来越喜欢这门语言。版本3.1也不例外。如果您是Python的初学者,不必担心,我会一路引领着您。相反,如果您是一名希望尝试新版本的Python老手,可以不必在已掌握的知识上浪费时间,而是直接学习所需的知识,因为本书的结构十分清晰。 之所以写这本书,是因为我热爱Python。我非常喜爱它!我想和您一起分享我对Python的热爱。您可能也会像我一样越来越喜爱它。 本书读者对象 如果您具备计算机知识,并且想学习一门有趣的程序语言来更好地控制计算机,那么本书适合您。 如果您是系统管理员,希望学习一门优秀的语言来更好地管理和配置系统和网络,那么本书适合您。 如果您已经了解Python,但是想知道版本3.1中有哪些很酷的新功能,那么本书适合您。 总之,本书适合于所有热衷于使用功能最丰富且十分易用的最新版本Python 3.1进行编程的读者。 本书主要内容 本书主要介绍Python 3.1。Python 3.1发布于2009年,是Python程序语言的最新主版本。由于Python是一门跨平台的语言,本书中的内容和示例适用于任何平台(除非特别指出的例外情况)。在可能独立于平台的情况下,本书中的示例都尽量设计成跨平台的。 此外,由于Python 3.1相对较新,并非所有支持库都被更新到可以在Python 3.x下工作。在这种情形下,如果某些理论需要详细解释,本书将使用Python 2.6代替Python 3.1。 本书结构 就像所有入门书籍一样,本书首先对语言进行了介绍。从这里开始,会接触到语言的核心,进而接触到更加高级的专门主题。本书分为如下4个部分。 第Ⅰ部分--初步了解Python 如标题所示,第Ⅰ部分让您初步了解Python。 编程基础和字符串 本章首先介绍Python,探讨Python是什么,为什么它如此有用和强大。另外,还探讨Python的开发历史和最新的版本,后者正是本书的讨论重点。您会了解到Python所涉及的范围,以及Python可能参与的应用开发领域。最后,您将开始操作自己的第一种数据类型:字符串。 数值与运算符 本章会介绍数值和运算符的基本知识。您将会学习不同类型的数值,如何执行简单的和复杂的公式,以及如何使用各种运算符。还将学到运算符的优先级以及数值的格式化。 变量 编程语言最终帮助程序员管理不同类型的信息,换言之,就是管理数据。理解数据类型并且知道Python如何表示它们对于Python编程非常必要。本章将帮助您理解在Python中表示不同数据类型的最佳方式。 第Ⅱ部分--Python语言和标准库 当然,使用一门语言最需要的是了解语言本身,熟悉它的语法和模块。本部分首先介绍数据类型和变量,并逐步介绍其他概念,直到获得开发功能完善的Python程序所需的全部知识。 注意,应该按顺序阅读本部分的章节,因为每一章都建立在前一章的基础之上。 做出决策 最终,程序将需要在某个位置做出决策:是选择这条路径,还是选择另一条路径?如果选择那条路径,将会发生什么?在本章中将学到如何比较数据,例如判断某个值是否比另一个值大,并且将学习如何利用循环来完成重复性的任务。 函数 本章将介绍函数编程,这将帮助您扩展Python知识。函数允许使用者利用强大的概念,例如参数传递和代码重用。本章将介绍如何利用函数使编写的代码更加高效和灵活。 类和对象 本章将介绍对象的概念。您将学习如何定义类和如何在类中创建对象和编写方法,还将学到有关对象作用域的知识。 组织程序 当程序变大时,需要把它们分成单独的几部分。本章将讨论Python模块,并探索包的概念。包并不复杂,它仅是若干模块的集合。 文件和目录 日常编程中一个重要的部分是学习如何处理文件和目录。本章着重介绍通常如何创建、修改和处理文件。另外,还将介绍如何从文件中获取数据,以及如何与各种各样的目录交互。 Python语言的其他特性 本章将介绍Python语言提供的其他特性,包括如何使用列表做出决策,如何使用字典进行字符串替换,以及一些有特色的模块。 创建模块 通过允许重用代码片段,模块能够帮助节省时间。它能减少发生错误的机率,因为当前用到的模块可能之前已经被测试和使用过很多次。本章将介绍如何创建自己的模块,以及如何导入并处理已存在的模块,这些已经存在的模块使得Python在应用中功能非常强大。 文本处理 在编程过程中,可以利用文本做很多事情,而且本质上,文本是与用户进行有效沟通的关键。毕竟,如果没有文本,就只能使用图片了。本章将介绍如何用多种方法处理文本,包括利用正则表达式、搜索文件以及搜索特定类型的文件等。 第Ⅲ部分--开始使用Python 现在您已经知道了Python是什么,以及如何利用这门语言进行工作,接下来应该做什么呢?本部分探究了您会遇到或者想了解的许多编程主题。可以顺序阅读本部分的各章,也可以按其他任意顺序阅读,因为它们是彼此独立的。 测试 在把程序交付给用户之前,对程序进行测试,这是保证它能正常工作的唯一途径。本章不仅会介绍正确测试程序的一些基本概念,还会介绍一些可用的测试工具和测试框架。 使用Python编写GUI 目前为止,本书中的程序都是通过命令行方式工作。本章将介绍GUI编程的概念。您将使用Tkinter创建几个GUI程序,Tkinter是Python程序员最常用的GUI工具包。 访问数据库 数据库存储了程序可以使用的各种信息。它也可以作为存储信息的地方,以便日后可以从中检索出特定任务所需的数据。本章将介绍各种类型的数据库以及如何利用它们进行工作。 使用Python处理XML XML是处理Internet数据的强大工具。本章将介绍XML的基础知识,包括模式与DTD之间的区别、基本的语法、如何创建和验证XML以及一些高级的主题(例如使用lxml)。 网络编程 Internet已经潜移默化地进入了我们的日常生活,并逐渐变成必需品,而不是一种特权。本章将介绍如何使用程序发送E-mail,以及如何允许用户通过Web进行交流。 用C扩展编程 本章深入介绍如何使用C语言编程,包括如何利用C的框架和模块,C的基础知识,以及如何从Python向C传递参数,并在之后将值返回给Python。 数值编程 本书的开始部分简单介绍了数值,现在是进一步钻研的时候了。本章将深入介绍整型、浮点型、复数和数组的全部知识,以及如何使用内置的数学函数和模块。 Django简介 Django是用Python编写的Web应用程序框架,它利用了模型-视图-控制器模式。Django最初被用来管理新闻Web站点,但由于简单易用而变得流行起来,它使得程序员可以用简单的方式创建复杂的Web站点,包括以数据库为中心的Web站点。本章将介绍Django的基础知识。 Web应用程序和Web服务 本章将介绍Web应用程序和Web服务的基础知识,例如REST架构,以及如何处理HTTP请求和响应。 集成Java与Python 本章将介绍Java的基础知识,这样可以在研究如何结合Python和Java之前,打好坚实的基础。还将介绍各种帮助在Python中使用Java的模块,以及如何创建简单但有效的应用程序。 第Ⅳ部分:附录 本书结尾的附录可以进一步扩展您对Python的了解,激发您对Python的学习兴趣。 ●习题答案 ●在线资源 ●Python 3.1的新特性 ●术语表 使用本书的条件 使用本书有一些条件。在此给出下面列出的推荐,因为Python本身可在多种不同的平台上运行。然而,本书的前几章假定您可以使用GUI,例如在Windows、Mac OS X、UNIX和Linux上的X Window等系统上可用的GUI。自然地,一些章节(例如介绍GUI的那一章)也需要GUI,而如果有网络连接,涉及网络的那些章节会更有意义。 下面是建议的最低配置需求: ●一台PC机,运行Linux、BSD UNIX或Windows系统,频率在500MHz以上;或者运行Mac OS X 版本10.2或更新版本的G3或更新的Macintosh。 ●至少256MB内存。 ●所用平台具有图形用户界面。 ●对所用计算机有必要的权限,以安装必需的软件。 ●可以访问TCP/IP网络,例如Internet或者校园网。 ●可以通过Internet下载所需软件。 源代码 在阅读本书提供的代码时既可以亲自输入所有代码,也可以使用随书提供的代码文件。本书所有代码均可以从(或http://www.tupwk.com.cn/downpage)网站下载。进入该网站后,请根据本书的书名查找本书(读者既可以使用搜索框进行查找,也可以使用书名列表进行查找),然后单击本书详细内容页面上提供的Download Code链接,就可以下载本书提供的所有代码。 注意: 由于许多书籍名称与本书类似,因此也可以通过ISBN进行查找,本书英文版的ISBN为:978-0-470-41463-7。 下载代码后,可以利用一种压缩工具解压代码。此外,还可以通过访问网站/dynamic/books/download.aspx中提供的Wrox代码下载页面来获取本书提供的代码,也可以下载Wrox出版的其他书籍提供的代码。 勘误表 为了避免本书文字和代码中存在错误,我们已经竭尽全力。然而,就如世界上不存在完美无缺的事物,本书仍然可能存在错误。如果您在我们编写的书籍中发现了诸如拼写错误或代码缺陷等问题,请告诉我们,我们对此表示感谢。利用勘误表反馈错误信息,可以为其他读者节省大量时间,同时,我们也能够受益于您的帮助,编写出质量更高的专业着作。 如果需要参考本书的勘误表,请在网站中用搜索框或书名列表查找本书书名。然后,在本书的详细内容页面上,单击Book Errata链接。在随后显示的页面中,可以看到与本书相关的所有勘误信息,这些信息是由读者提交、并由Wrox的编辑们加上的。通过访问/misc-pages/booklist.shtml,还可以看到Wrox出版的所有书籍的勘误表。 如果没有在Book Errata页面上找到自己发现的错误,那么请转到页面/ contact/techsupport.shtml,针对您所发现的每一项错误填写表格,并将表格发给我们,我们将对表格内容进行认真审查,如果确实是我们书中的错误,那么我们将在该书的Book Errata页面上标明该错误信息,并在该书的后续版本中改正相关错误。 关于 如果您希望能够与作者进行讨论,或希望能够参与读者的共同讨论,那么请加入的论坛。这个论坛是一个基于Web的系统,您可以在论坛发表与Wrox出版的书籍有关的技术信息,并与其他读者和技术用户进行讨论。论坛提供了订阅功能,可以将与您所选主题相关的新帖子定期发送到您的电子邮箱。Wrox的作者、编辑、业界专家以及其他读者都会参与论坛中的讨论。 您可以在参与多个论坛的讨论,这些论坛不仅能够帮助您更好地理解本书,还有助于您更好地开发应用程序。如果希望加入论坛,请按照以下步骤执行: (1) 进入页面,单击Register链接。 (2) 阅读使用条款,然后单击Agree。 (3) 填写必要的信息(以及想要提供的可选信息),然后单击Submit。 (4) 随后会收到一封电子邮件,邮件中说明了如何验证账号并完成整个加入过程。 注意: 要阅读论坛信息,无须加入P2P。但是如果需要发表主题或发表回复,那么必须加入论坛。 成功加入论坛后,就可以发表新主题了。此外,还可以回复其他主题。您在任何时间都可以阅读论坛信息。如果需要论坛将新的信息发送到自己的电子邮箱,那么可以单击论坛列表中论坛名称旁的Subscribe to this Forum图标完成该功能设置。 如果需要获得更多与Wrox P2P相关的信息,请阅读P2P FAQs,这样可以获得大量与P2P和Wrox出版的书籍相关的具体信息。阅读FAQs时,请单击P2P 页面上的FAQs链接。