python基础教程(第二版)序和前言

英文版书名:Beginning Python From Novice to Professional(Second Edition)

作者:【挪】Magnus Lie Hetland

译者:司维、曾军崴、谭颖华

人民邮电出版社

一、译者序(2010年2月)

和大多数Python爱好者、使用者和开发者一样,我也是通过偶然的机会才接触了这门可以用 “优美”来形容的程序设计语言:在大二下学期的时候,数据结构课程的一道习题让我百思不得其解,于是我就上网寻找答案,最后在某个编程网站上找到了参考方案。不过,代码是用一种我没见过的语言编写的。之后的事情自然是我从网上下载了Python的解释器和文档,把Python当作新玩具一样爱不释手地输入一行行代码去试验和探索。当时那种久违的兴奋和震惊,只有在小学学习Logo语言初次接触程序设计的时候才有过。

为了能够更系统地了解Python,我开始寻找教程。学校图书馆只有一本《新华字典》大小的Python手册,使用的版本还是2.0版。无奈中只好求助于网络,最初找到了两本教程:其中一本是很多国内Python爱好者的启蒙教程,后来由著名Python社区啄木鸟组织翻译的《深入Python》,另外一本就是本书的前身Practical Python;接着我顺藤摸瓜査到了刚刚出版的本书第1版的英文版。在试读了几页内容之后,我萌生了和朋友一起翻译的想法,不过,当时只是将其作为一种“强迫”自己将原版文字掰开来揉碎了进行理解的方式。在完成前十章后,谭颖华老师通过MSN联系到我,吿诉我本书已经由图灵公司引进,希望能够使用我们的翻译版本。

对我来说,兴奋过后感受到了前所未有的压力。事实上就算我预料到了可能的困难,却低估了其难度。出版社耐心地等待我们花了相当长时间完成了第1版,之后却被吿知原书第2版已经上市。接下来我们又只好逐行对照两个版本的区别进行更改。由于第2版中增加了大量的Python 3.0相关的内容,这项工作实际上比第1版翻译还要耗费精力。不过这也给了我们修正第1版错误、对语言进行润色的难得机会。

严格来说,本书前几章都在介绍最基本的程序设计理念,例如极限编程、面向对象程序设计,对于富有经验的开发人员,特别是从C/C++或其他语言转型过来的开发人员来说,可以直接跳过这些章节。但对于没有多少开发经验或者准备以Python进行编程入门的新手来说,这些章节则是不容错过的。作者对Python语言的各个方面的剖析准确而到位,各部分会花上不同篇幅确保读者理解而又不会浪费时间。书中各个章节分工明确,对Python从语法到编译打包、从测试到GUI程序的各个方面都进行了介绍并辅以大量实例。

无论是经验丰富的髙手还是初出茅庐的新人,本书最后的10个项目都是难得的练手机会——这也是本书不同于其他Python教程的特色之一。这10个项目基本覆盖了前面章节所提到的各种知识点,同时又不乏趣味性和实用性。

本书第2、3、9、11、14、17和21章由曾军崴翻译,其余章节由司维翻译。谭颖华老师负责全书的统稿和润色,并且承担了第2版中大部分章节的琐碎繁杂却重要的更新工作。虽然我们尽力保证译文的正确和通顺,但限于自身的程序设计和文字表达水平,问题在所难免,希望读者在容忍的同时能够指正,在论坛、Blog或者图灵网站上指出都可。希望此译本能在读者学习Python以及推广这门语言方面有所帮助。

二、作者序

新版的《Python基础教程》终于和大家见面了。如果算上这本书的前身Practical Python实际上这已经是第3版了。这本书也让我投入了近10年时间,这期间,Python发生了许多有趣的变化,我也在尽力更新我对这门语言的介绍。同时,Python也面临着在相当长的一段时间内最具标志性的变化:推出了第3版。在本书撰写时,最终版本还没有发布,但是其特性已跃然纸上,并且已经推出了几个可用的版本。这次升级带来一个很有意思的挑战,就是它不再向下兼容。换句话说,它并不是简单地增加一些功能,让我可以挑挑捡捡地写进书中。它同时还会改变已经存在的语言,也就是说Python 2.5版本中的某些特性在新版本将不会保留。

要是整个Python社群都立即着手转换到新版本,更新所有遗留代码,那当然不会有什么问题。我只要讲解新的语言就可以了!但是,大量用旧版编写的代码还会存在,并且仍然有可能继续编写,直到第3版完全板上钉钉。

那么,怎么应付这个变化呢?首先,就算新版本有些不兼容的改变,但语言的大部分还是相同的。也就是说,如果我的程序完全用Python2.5编写,基本上在Python3上也能运行(在兼容版本2.6版上更不成问题)。对于那些不再正确的部分,我则比较保守一些,并且猜测Python 3完全被大家接受还需要一定时间。本书基本上基于2.5版本,显著的改变会通过文字体现出来。除此之外,我还增加了一个附录D,概要介绍了一些主要改变。对于大多数读者来说,我觉得应该够了。

在撰写本书第2版时,我得到了许多人的帮助。就像在写前两版(本书第1版和之前的Practical Python)一样,Jason Gilmore扶我上马,并且在项目进展的过程中扮演了重要角色。Richard Dal Porto、FrankPohlmanr和Dominic Shakeshaftft过程中也常助我一臂之力。Richard Taylor至关重要,他要确保代码完全正确(如果还是有错,大家骂我好了),而Marilyn Smith为我的写作润色不少。 我还要感谢Apress的其他同仁们,包括 LizBerry、Beth Christmas, Steve Angli和Tina Nielsen,还有那些帮我修订错误以及提出宝贵意见的读者们,其中包括Bob Helmbold和OWaclaw Kusnierczyk。 当然,我还要感谢所有那些将本书的前两版本买回家的读者们。

三、第一版前言

几年前,Jason Gilmore建议我为Apress出版社写本书。他读了我的在线Python教程,希望我以类似的风格撰写一本书。我受宠若惊,也很兴奋,还有点紧张。最让我担心的就是写书要花费多长时间,以及它对于我的学业(我当时是博士生)有多大影响。这件事结果成了一项艰巨的任务,而且花的时间比我预期的长很多。幸运的是,它没有过多地影响我的学习,我也按时获得了博士学位。

去年,Jason又联系了我。Apress出版社希望修订本书,问我是否有兴趣。那时候我正忙着熟悉新的副教授职位,而几乎所有的业余时间都用来扮演皮尔•金特(PeerGynt)了,所以时间又变成了主要问题。最终(在事情安排妥当一些,而且我也有更多的业余时间之后),我同意了修订那本书,而本书(我相信你已经猜到了)就是最终的成果。大多数的资料都是从本书的第1版Practical Python (Apress, 2002)中拿来的。本书基于Python语言的最新更新,对现有的内容进行了全面的修订,增加了几个新章节。有些旧的内容也进行了重新分配,以适应新的结构。我从读者那里得到了不少关于第1版的正面反馈——所以我希望能够继续保留读者所喜爱的特点,并且锦上添花。

如果没有其他人对我的持续帮助和鼓励,这本书是无法完成的。我衷心地感谢他们。特别要感谢在本书撰写过程中和我一起工作的团队:Jason Gilmore,感谢他落实了这个项目并且将项目引导至正确的方向!Beckie Stones,感谢她将所有内容整理在一起,Jeremy Jones和MattMoodie,感谢他们专业的意见和洞察力;Linda Marousek,感谢她对我如此耐心。我还要感谢团队中的其他人,感谢他们让这个过程变得如此顺利。但是如果没有那些在前一版本中和我一起工作的人所付出的努力,这本书也是无法完成的。我要感谢Jason Gilmore和Alex Martelli,感谢他们杰出的技术编辑工作(Jason负责整本书,Alex负责前半部分)以及工作职责之外的修改意见和建议,Erin Mulligan和Tory McLeam,感谢他们在撰写过程中和我共同进退,在我需要的时候给予我敦促;Nancy Rapoport,感谢她对我的文稿进行润色,Grace Wong,感谢她在别人无法回答的时候给予我答案。Pete Shinners对项目十的游戏给过我一些有帮助的建议,我非常感谢她。对本书感到满意的读者也给我发来了邮件,这极大地鼓舞了我的斗志,感谢你们!最后,我要谢谢我的家人和朋友,以及我的女朋友Ranveig。在撰写本书的过程中,他们一直都宽容地陪伴着我。

四、前言

编写C程序就像拿着剃刀的人在刚打过蜡的舞场内跳快舞。——Waldi Ravens

C++:难以学习,生就如此。——匿名

Java在很多方面就像是C++。——Michael Feldman

现在请看一种前所未有的表演…… ——Monty Python的作品《飞行的马戏团》

我引用了别人的几句话来定下本书的基调,这当然很不正式。为了让大家可以轻松地阅读本书,我试图用一点幽默的方式来讨论Python编程的主题。幽默是Python社区的传统,而很多幽默都和Monty Python[Monty Python是20世纪70年代风靡全球的英国六人喜剧团体。]的滑稽短剧有关。所以我举的一些例子可能看起来有些傻,希望你能够接受。(Python这个名字是从Monty Python借鉴来的,而不是源于那条大蟒蛇。)

在这个前言中,我会简单地吿诉你Python是什么,为什么你应该使用它,谁应该使用它,本书的读者群是谁以及本书是如何组织的。

那么,什么是Python,为什么你要使用它呢?还是引用官方的说法吧(http://www.python.org/ doc/essays/blurb.html),Python就是“一种解释型的、面向对象的、带有动态语义的髙级程序设计语言”。这句话中的很多术语,你可以在阅读本书的过程中逐渐弄懂,但最重要的是,Python是一种使你在编程时能够保持自己风格的程序设计语,你不用费什么劲就可以实现你想要的功能,并且编写的程序清晰易懂(和当前流行的其他各种程序设计语言相比更是如此)。

尽管Python可能不会像C或者C++那样的编译型语言一样快,但是Python依然值得一用,因为它可以让你节约编程时间,而大多数程序的运行速度差异可能并不是么显而易见。如果你是个C程序员,你可以在以后轻松地用C实现程序的关键部分,让它们和使用Python编写的部分相互协作。如果你之前没有任何编程的经历(而且可能被我前面提到的C和C#的话唬住了),那么既简单又强大的Python就是你入门的完美选择。

那么谁该使用Python呢?自从Guido van Rossum在20世纪90年代初创造这门语言以来,它的支持者就一直在稳步增加,而且近些年来,社区对它的兴趣也日益浓厚。Python广泛用于系统管理工作(比如它是很多Linux发行版的重要组成部分),它也可以用于教授零起步的入门者编程。 NASA在它的几个系统中既用Python开发,又将其作为脚本语言。Industrial Light & Magic在高预算影片中使用Python制作影片的特效,Yahoo!使用它(包括其他技术)管理讨论组,Google用它实现Web爬虫和捜索引擎中的很多组件。Python正在用于计算机游戏和生物信息等各种领域。不久后可能就会有人问了:“谁不用Python呢?"

本书面向那些希望学习如何使用Python编程的读者,其内容适合广泛的读者群,不管你是程序设计的新手还是髙级计算机用户。如果你之前从未写过程序,那么你应该从第1章开始阅读,直到你觉得所学的内容对你来说有些超前了(真的有可能会这样),此时你就应该开始实践,编写自己的程序,待时机成熟,你就可以再回到书本上,学习那些更复杂的内容了。

如果你已经知道如何编程,那么,你对一些介绍性的内容一定不会感到新鲜了(但是,文中可能到处都有一些让人惊讶的细节)。你可以快速阅读前面的章节,从而了解Python是如何工作的,或者阅读附录A,它是基于我的在线Python教程“Instant Python”写成的。它会让你快速了解很多重要的Python概念。有了大概印象后,你可以直接跳到第10章(讨论Python标准库)。

本书的后半部分包括10个程序设计项目,展示了Python语言的不同功能。不管是新手还是专家,都会对这些项目感兴趣。尽管后面项目中的一些内容对于没有经验的程序员来说可能有些难, 但是(在读完本书的前半部分后)按照项目顺序完成应该还是可能的。

这些项目包括了多方面的主题,多数对你编写自己的程序都很有用。你可以学会做一些你现 在完全不会做的事情,比如创建聊天服务器、点对点的文件共享系统或者功能完备的计算机图形游戏等。乍一看,你会觉得很多内容都很难,但是到了最后,我想你会惊讶于它们实际上是如此简单。如果你想下载源代码,可以访问http://www.apress.com。

好了,冗长的介绍我自己都觉得烦了,郞么我们就开始学习Python编程吧,从第1章或者附录A开始。祝你好运,编程愉快。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容