1. 首页
  2. 移动开发
  3. QT
  4. [Python基础教程2].带书签

[Python基础教程2].带书签

上传者: 2020-11-02 22:49:19上传 PDF文件 33.42MB 热度 19次
版权声明 Original English language edition, entitled Beginning Python: From Novice to Professional, Second Edition by Magnus Lie Hetland, published by Apress, 2855 Telegraph Avenue, Suite 600, Berkeley, CA 94705USA Copyright C 2008 by Magnus Lie Hetland. Simplified Chinese-language edition copyright C 2010 by Posts telecom Press. All rights reserved 本书中文简体字版由 Apress LP授权人民邮电出版社独家出版。未经出版者书面许可,不得以任 何方式复制或抄袭本书内容。 版权所有,侵权必究。 www.iopsage.com 计算机精品学习资料大放送 软考官方指定教材及同步辅导书下载|软考历年真是解析与答案 软考视频|考试机构|考试时间安排 Java一览无余:Java视频教程| Java se| Java ee Net技术精品资料下载汇总: ASP NET篇 Net技术精品资料下载汇总:C蒜语言篇 Ne技术精品资料下载汇总: VB NET篇 撼世出击:C/C++编程语言学习资料尽收眼底电子书+视频教程 Visua|C++(Vc/MFC)学习电子书及开发工具下载 Per/cGI脚本语言编程学习资源下载地址大全 Python语言编程学习资料(电子书+视频教程)下载汇总 最新最全Ruby、 Ruby on Rails精品电子书等学习资料下载 数据库管理系统(DBMS)精品学习资源汇总: MySQL篇| SQL Server篇丨 Oracle篇 最强HTML/ XHTML、cSs精品学习资料下载汇总 最新 JavaScript、Ajax典藏级学习资料下载分类汇总 网络最强PHP开发工具+电子书+视频教程等资料下载汇总 UML学习电子资下载汇总软件设计与开发人员必备 经典 LinuxcBT视频教程系列 Linux快速学习视频教程一帖通 天罗地网:精品 Linux学习资料大收集(电子书+视频教程) Linux参考资源大系 Linux系统管理员必备参考资料下载汇总 Linux shel、内核及系统编程精品资料下载汇总 UNIX操作系统精品学习资料分类总汇 FreeBsD/ OpenBSD/ NetBsD精品学习资源索引含书籍+视频 Solaris/ Opensolaris电子书、视频等精华资料下载索引 译者序 和大多数 Python爱好者、使用者和开发者一样,我也是通过偶然的机会才接触了这门可以用 优美”来形容的程序设计语言:在大二下学期的时候,数据结构课程的一道习题让我百思不得 其解,于是我就上网寻找答案,最后在某个编程网站上找到了参考方案。不过,代码是用一种我 没见过的语言编写的。之后的事情自然是我从网上下载了 Python的解释器和文档,把 Python当作 新玩具一样爱不释手地输入一行行代码去试验和探索。当时那种久违的兴奋和震惊,只有在小学 学习Logo语言初次接触程序设计的时候才有过。 为了能够更系统地了解 Python,我开始寻找教程。学校图书馆只有一本《新华字典》大小的 Python手册,使用的版本还是20版。无奈中只好求助于网络,最初找到了两本教程:其中一本是 很多国内 Python爱好者的启蒙教程,后来由著名 Python社区啄木鸟组织翻译的《深入 Python》,另 外一本就是本书的前身 Practical python;接着我顺藤摸瓜査到了刚刚出版的本书第1版的英文版。 在试读了几页内容之后,我萌生了和朋友一起翻译的想法,不过,当时只是将其作为一种“强迫” 自己将原版文字掰开来揉碎了进行理解的方式。在完成前十章后,谭颖华老师通过MSN联系到我, 告诉我本书已经由图灵公司引进,希望能够使用我们的翻译版本。 对我来说,兴奋过后感受到了前所未有的压力。事实上就算我预料到了可能的困难,却低估 了其难度。出版社耐心地等待我们花了相当长时间完成了第1版,之后却被告知原书第2版已经上 市。接下来我们又只好逐行对照两个版本的区别进行更改—由于第2版中增加了大量的 Python 3.0相关的内容,这项工作实际上比第1版翻译还要耗费精力。不过这也给了我们修正第1版错误 对语言进行润色的难得机会。 严格来说,本书前几章都在介绍最基本的程序设计理念,例如极限编程、面向对象程序设计, 对于富有经验的开发人员,特别是从CC++或其他语言转型过来的开发人员来说,可以直接跳过 这些章节。但对于没有多少开发经验或者准备以 Python进行编程入门的新手来说,这些章节则是 不容错过的。作者对 Python语言的各个方面的剖析准确而到位,各部分会花上不同篇幅确保读者 理解而又不会浪费时间。书中各个章节分工明确,对 Python从语法到编译打包、从测试到GUI程 序的各个方面都进行了介绍并辅以大量实例。 无论是经验丰富的高手还是初出茅庐的新人,本书最后的10个项目都是难得的练手机会一 这也是本书不同于其他 Python教程的特色之一。这10个项目基本覆盖了前面章节所提到的各种知 识点,同时又不乏趣味性和实用性 www.iopsage.com 2译者序 夲书第2、3、9、1、14、17和21章由曾军崴翻译,其余章节由司维翻译。谭颖华老师负责 全书的统稿和润色,并且承担了第2版中大部分章节的琐碎繁杂却重要的更新工作。虽然我们尽 力保证译文的正确和通顺,但限于自身的程序设计和文字表达水平,问题在所难免,希望读者在 容忍的同时能够指正,在论坛、Blog或者图灵网站上指出都可。希望此译本能在读者学习 Python 以及推广这门语言方面有所帮助。 译者 2010年2月 www.iopsage.com 序 新版的《 Python基础教程》终于和大家见面了。如果算上这本书的前身 Pratical python,实 际上这已经是第3版了。这本书也让我投入了近10年时间。这期间, Python发生了许多有趣的变 化,我也在尽力更新我对这门语言的介绍。同时, Python也面临着在相当长的一段时间内最具标 志性的变化:推出了第3版。在本书撰写时,最终版本还没有发布,但是其特性已跃然纸上,并 且已经推出了几个可用的版本。这次升级带来一个很有意思的挑战,就是它不再向下兼容。换句 话说,它并不是简单地增加一些功能,让我可以挑挑捡捡地写进书中。它同时还会改变已经存在 的语言,也就是说 Python2.版本中的某些特性在新版本将不会保留。 要是整个 Python社群都立即着手转换到新版本,更新所有遗留代码,那当然不会有什么问题。 我只要讲解新的语言就可以了!但是,大量用旧版编写的代码还会存在,并且仍然有可能继续编 写,直到第3版完全板上钉钉。 那么,怎么应付这个变化呢?首先,就算新版本有些不兼容的改变,但语言的大部分还是相 同的。也就是说,如果我的程序完全用 Python2.5编写,基本上在 Python3上也能运行(在兼容 版本2.6版上更不成问题)。对于那些不再正确的部分,我则比较保守一些,并且猜测 Python3 完全被大家接受还需要一定时间。本书基本上基于2版本,显著的改变会通过文字体现出来。 除此之外,我还增加了一个附录D,概要介绍了一些主要改变。对于大多数读者来说,我觉得 应该够了。 在撰写本书第2版时,我得到了许多人的帮助。就像在写前两版(本书第1版和之前的 Pratical Python)一样, Jason gilmore扶我上马,并且在项目进展的过程中扮演了重要角色。 Richard dal Porto、 Frank pohlmann和 Dominic shakeshaf在过程中也常助我一臂之力。 Richard Taylor至关重要, 他要确保代码完全正确(如果还是有错,大家骂我好了),而 Marilyn Smith为我的写作润色不少。 我还要感谢 Apress的其他同仁们,包括 Liz Berry、 Beth christmas、 Steve Anglin和 Tina Nielsen,还 有那些帮我修订错误以及提出宝贵意见的读者们,其中包括 Bob helmbold和 Waclaw Kusnierczyk。 当然,我还要感谢所有那些将本书的前两版本买回家的读者们。 www.iopsage.com 第1版前言 几年前, Jason Gilmore建议我为 Apress出版社写本书。他读了我的在线 Python教程,希望我 以类似的风格撰写一本书。我受宠若惊,也很兴奋,还有点紧张。最让我担心的就是写书要花费 多长时间,以及它对于我的学业(我当时是博士生)有多大影响。这件事结果成了一项艰巨的任 务,而且花的时间比我预期的长很多。幸运的是,它没有过多地影响我的学习,我也按时获得了 博士学位。 去年,Jaon又联系了我。 Apress出版社希望修订本书,问我是否有兴趣。那时候我正忙着熟 悉新的副教授职位,而几乎所有的业余时间都用来扮演皮尔·金特( Peer Gynt)了,所以时间又 变成了主要问题。最终(在事情安排妥当一些,而且我也有更多的业余时间之后),我同意了修 订那本书,而本书(我相信你已经猜到了)就是最终的成果。大多数的资料都是从本书的第1版 Practical python( Apress,2002)中拿来的。本书基于 Python语言的最新更新,对现有的内容进行 了全面的修订,增加了几个新章节。有些旧的内容也进行了重新分配,以适应新的结构。我从读 者那里得到了不少关于第1版的正面反馈——所以我希望能够继续保留读者所喜爱的特点,并且 锦上添花。 如果没有其他人对我的持续帮助和鼓励,这本书是无法完成的。我衷心地感谢他们。特别要 感谢在本书撰写过程中和我一起工作的团队: Jason gilmore,感谢他落实了这个项目并且将项目 引导至正确的方向; Beckie stones,感谢她将所有内容整理在一起; Jeremy Jones和 Matt Moodie, 感谢他们专业的意见和洞察力; Linda marousek,感谢她对我如此耐心。我还要感谢团队中的其 他人,感谢他们让这个过程变得如此顺利。但是如果没有那些在前一版本中和我一起工作的人所 付出的努力,这本书也是无法完成的。我要感谢 Jason Gilmore和 Alex martelli,感谢他们杰出的 技术编辑工作( Jason负责整本书,Alex负责前半部分)以及工作职责之外的修改意见和建议; Erin mulligan和 Tory McLearn,感谢他们在撰写过程中和我共同进退,在我需要的时候给予我敦 促; Nancy Rapoport,感谢她对我的文稿进行润色; Grace Wong,感谢她在别人无法回答的时候 给予我答案。 Pete Shinners对项目十的游戏给过我一些有帮助的建议,我非常感谢她。对本书感 到满意的读者也给我发来了邮件,这极大地鼓舞了我的斗志,感谢你们!最后,我要谢谢我的家 人和朋友,以及我的女朋友 Ranveig。在撰写本书的过程中,他们一直都宽容地陪伴着我。 www.iopsage.com Top Sage. com 编写C程序就像拿着剃刀的人在刚打过蜡的舞场内跳快舞。 Waldi ravens C++:难以学习,生就如此 匿名 Java在很多方面就像是C++。 -Michael Feldman 现在请看一种前所未有的表演 Monty Python的作品《飞行的马戏团》 我引用了别人的几句话来定下本书的基调,这当然很不正式。为了让大家可以轻松地阅读本 书,我试图用一点幽默的方式来讨论 Python编程的主题。幽默是 Python社区的传统,而很多幽默 都和 Monty Python°的滑稽短剧有关。所以我举的一些例子可能看起来有些傻,希望你能够接受。 ( Python这个名字是从 Monty Python借鉴来的,而不是源于那条大蟒蛇。) 在这个前言中,我会简单地告诉你 Python是什么,为什么你应该使用它,谁应该使用它,本 书的读者群是谁以及本书是如何组织的。 那么,什么是 Python,为什么你要使用它呢?还是引用官方的说法吧(htt:/ rww.python. org doc/essays/blurb. html), Python就是“一种解释型的、面向对象的、带有动态语义的高级程序设计 语言”。这句话中的很多术语,你可以在阅读本书的过程中逐渐弄懂,但最重要的是, Python是 一种使你在编程时能够保持自己风格的程序设计语。你不用费什么劲就可以实现你想要的功能, 并且编写的程序清晰易懂(和当前流行的其他各种程序设计语言相比更是如此)。 尽管 Python可能不会像C或者C艹+那样的编译型语言一样快,但是 Python依然值得一用,因为 它可以让你节约编程时间,而大多数程序的运行速度差异可能并不是那么显而易见。如果你是个 C程序员,你可以在以后轻松地用C实现程序的关键部分,让它们和使用 Python编写的部分相互协 作。如果你之前没有任何编程的经历(而且可能被我前面提到的C和C艹+的话唬住了),那么既简 单又强大的 Python就是你入门的完美选择。 1 Monty Python是20世纪70年代风靡全球的英国六人喜剧团体。—译者注 Www.ioPsage.com 2前言 那么谁该使用 Python呢?自从 Guido van rossum在20世纪90年代初创造这门语言以来,它的 支持者就一直在稳步增加,而且近些年来,社区对它的兴趣也日益浓厚。 Python广泛用于系统管 理工作(比如它是很多 Linux发行版的重要组成部分),它也可以用于教授零起步的入门者编程 NASA在它的几个系统中既用 Python开发,又将其作为脚本语言。 Industrial Light&Magi在高预 算影片中使用 Python制作影片的特效; Yahoo!使用它(包括其他技术)管理讨论组; Google用它 实现Web爬虫和搜索引擎中的很多组件。 Python正在用于计算机游戏和生物信息等各种领域。不 久后可能就会有人问了:“谁不用 Python呢?” 本书面向那些希望学习如何使用 Python编程的读者,其内容适合广泛的读者群,不管你是程 序设计的新手还是高级计算机用户。如果你之前从未写过程序,那么你应该从第1章开始阅读, 直到你觉得所学的内容对你来说有些超前了(真的有可能会这样),此时你就应该开始实践,编 写自己的程序,待时机成熟,你就可以再回到书本上,学习那些更复杂的内容了。 如果你已经知道如何编程,那么,你对一些介绍性的内容一定不会感到新鲜了(但是,文中 可能到处都有一些让人惊讶的细节)。你可以快速阅读前面的章节,从而了解 Python是如何工作 的,或者阅读附录A,它是基于我的在线 Python教程“ Instant Python”写成的。它会让你快速了 解很多重要的 Python概念。有了大概印象后,你可以直接跳到第10章(讨论 Python标准库)。 本书的后半部分包括10个程序设计项目,展示了 Python语言的不同功能。不管是新手还是专 家,都会对这些项目感兴趣。尽管后面项目中的一些内容对于没有经验的程序员来说可能有些难, 但是(在读完本书的前半部分后)按照项目顺序完成应该还是可能的。 这些项目包括了多方面的主题,多数对你编写自己的程序都很有用。你可以学会做一些你现 在完全不会做的事情,比如创建聊天服务器、点对点的文件共享系统或者功能完备的计算机图形 游戏等。乍一看,你会觉得很多内容都很难,但是到了最后,我想你会惊讶于它们实际上是如此 简单。如果你想下载源代码,可以访问htp:/ww. apress. com。 好了,冗长的介绍我自己都觉得烦了,那么我们就开始学习 Python编程吧,从第1章或者附 录A开始。祝你好运,编程愉快。 www.iopsage.com
用户评论