简明Python教程·目录&部分介绍&献词&前言&译者前言


简明 Python 教程
《A Byte of Python》是一本由 Swaroop C H 编写,旨在于介绍如何使用 Python 语言进行编 程的自由图书。它以教材与指南的形式为入门者介绍 Python 语言。如果你对电脑知识的了解 仅限于如何保存文本文件的话,那这本书就是为你准备的。
2005 年,沈洁元将本书的 1.20 版引进中国,并完成了全本翻译,将本书的译名定为《简明 Python 教程》。2017年,漠伦基于原书 4.0 版重新翻译,制作了本版全新译本,并沿用同样 的译名。
本版译本定义为 4.06c 版。最后修订于 2017 年 7 月 28 日。
有关 Python 3
本书将指导你如何使用 Python 3。同时,本书也会以指南的形式告诉你应如何适应虽老些但 使用更加普遍的 Python 2。
学术课程
本书曾被或正在被各类教育机构当作他们的教材:
阿姆斯特丹的自由大学 的 编程语言原理(Principles of Programming Languages) 课 程。
加利福尼亚大学戴维斯分校 的 计算机运作的基本概念(Basic Concepts of Computing) 课程。
哈佛大学 的 Python 编程(Programming With Python) 课程。
利兹大学 的 编程介绍(Introduction to Programming) 课程。
波士顿大学 的 应用程序编程介绍(Introduction to Application Programming) 课程。
俄克拉荷马大学 的 气象学信息科技技能(Information Technology Skills for Meteorology) 课程。
密歇根州立大学 的 地理处理(Geoprocessing) 课程。
爱丁堡大学 的 多代理语义 Web 系统(Multi Agent Semantic Web Systems) 课程。
MIT 开放课程项目(MIT OpenCourseWare) 的 计算机科学与编程介绍(Introduction to Computer Science and Programming) 课程。
斯洛文尼亚,卢布尔雅那大学的社会科学学院基础编程(Basic Programming)课程 -- Aleš Žiberna 说:“我(以及我的前任)一直使用你的这本书作为课程的主要教材。”
克罗地亚,扎达尔大学信息科学系的计算机编程介绍(Introduction to programming)课 程 -- Krešimir Zauder 说: “我想告诉你,《简明 Python 教程》是我课上的强制性读物。”
还有,本书已被 NASA 采用!NASA 在它们的 喷气推进实验室(Jet Propulsion Laboratory) 及它们的深空网络计划中采用了本书。
许可证
本书是根据 Swaroop C H 所创作的《Byte of Python》翻译而来的译本。《Byte of Python》 采用 知识共享 署名-相同方式共享 国际 4.0 协议(CC BY-SA Intl. 4.0) 进行授权,你可以在 原书的官方网站(https://python.swaroopch.com/)上获取本书的全部原始内容。
本译本依据相关协议进行翻译与再分发。
对于本译本的文本内容,采用 知识共享 署名-相同方式共享 国际 4.0 协议(CC BY-SA Intl. 4.0) 进行授权。

献词
本书献给 Kalyan Varma 以及其他许多来自 PESIT 的先驱,是他们向我们介绍了来自 GNU/Linux 世界的开放源代码。
谨以此书纪念 Atul Chitnis,一位友人以及非常怀念他的人的引导者。
本书献给 创造互联网的开拓者们。本书初撰于 2003 年。得益于这些先驱们对互联网上这一 分享知识的土壤与环境的设想,本书得以流行至今,并对他们深表感谢。

前言
Python 可能是极少数能够同时兼顾简单与功能强大的编程语言。无论是对于新手或是行家, 这一点都裨益颇深。更重要的是,采用 Python 编程充满了乐趣。本书旨在于帮助你学习这一 美妙的程序语言,并向你展现如何快速且毫不费力地完成诸多事情,实际上也可说是“助你解 决编程问题的抗毒血清”。
本书是为谁而撰
本书将以指南或教程的形式向你介绍 Python 这门编程语言。它以新手为主要目标。同时本书 也对有经验的程序员有所帮助。
如果你对电脑的所有了解仅止步于如何保存文本文件的话,那本书的目标便是协助你通过本 书学习 Python。如果在此之前你已经有了编程经验,你同样可以通过本书来学习 Python。
如果你已经有过编程经验,你或许会对 Python 与其它你所喜爱的编程语言间有何区别抱有兴 趣——而我将会你展现许多这种区别。顺便提醒你一下,Python 将会很快成为你最喜欢的编 程语言!

译者前言
如果一位新手想要学习编程,那么 Python 一定能排在推荐清单的最前列。而如果要想学习 Python,Swaroop C H 所撰写的《A Byte of Python》一定也能排在推荐教材的靠前位置。作 为一本旨在简明、易懂地传授 Python 知识的教材,这本采用知识共享协议免费分发的图书一 经刊行就流行于世界各地,不仅被翻译成各种语言,还被许多大学或教育机构采用用作正式 的教学教材。它在中国还有一个流传已久的名字——《简明 Python 教程》。
2005 年,沈洁元将《Byte of Python》的 1.20 版本引进中国,并完成了全本翻译,将其译名 定为《简明 Python 教程》。十余年来,这一译本流行于各大网站,想必自是为无数新晋的 Python 学习者以及业已有编程经验的程序员们提供了莫大帮助。
如今这份教程的中文译本的年龄已逾 11 年,原书《Byte of Python》已有诸多改动,而 Python 亦已历经多个重大更新。最简单的情况便是,在 Python 2 更新至 Python 3 后,译本 中开头的第一个程序 print 'hello world' 这一写法已经不再适用于 Python 3。可以料想, 这个问题已对不少学习者成了他们在学习 Python 时面对的第一个困扰。
这也是促使我这个兴趣使然的编程新手开始试图重新翻译这本教程的原因。计算机技术、程 序与应用开发技术的发展可能比其他任何一项技术更能贴合日新月异这样的说法,而有关 Python 由 2 至 3 的改动是否得当、应当使用哪一个版本这些议题到今天依然争执不休。即便 如此,一本简明教程或许仍有其紧跟时代的必要,在所有资料都准备就绪后,才可对后来的 新入门者提供更全面的帮助,产生更为有利的影响。
于是,自一个兴起而至的想法启程,今天我心怀忐忑地带来这本从头重新翻译的《简明 Python 教程》的新译本。
本译本根据《Byte of Python》原书在 GitHub 上提供的原文件进行翻译。根据原书中提供的 修订历史信息,译本遵循同样的版本号,定义为 4.0c 版。本次翻译除了正文内容外,还翻译 了其他介绍章节、附录章节以及其中的读者来稿与感言。书中所附的 .py 文件及直接写入正文 中的的源代码酌情翻译了注释部分。但为了保证程序源代码中的整洁与避免不必要的修改, 程序案例源码中的英文语句没有翻译而保持原样。
由于沈洁元所发布的 1.20 版译本是基于 CC BY-NC-ND 1.0(署名-非商业使用-禁止演绎,在 译本发布时写作“署名-非派生作品-非商业用途”)协议进行授权与分发,因此这一重译本不能 在沈的译本上进行改动或采纳其已有的更有力的表述,而只能将其列为参考。但在此依旧要 向沈洁元的翻译工作表示感谢,这份开辟性的译本对本译本的翻译提供了诸多参考,在这十 数年间为无数学习者起到了至关重要的帮助。新译本不敢抱持多少野心,只希望能够继承先 前译本所能起到的作用——哪怕只有些许。
另外,作为同一本书不同修订版的前后译本,为使阅读过沈洁元译本的读者便于通过本书了 解新增的内容,同时也为避免对同一概念的不同表达可能造成的困扰,对于本译本与沈洁元 译本译法相左的一些术语或概念,会在注释中列出了沈洁元译本采用的译法,供读者参考。
有关现在这本新译本,翻译并非一蹴而就,期间磕磕绊绊也是必然。事实上现在这位新译者 在刚开始翻译时仍是一名编程门外汉,仅抱着兴趣使然的心与一边翻译一边学习的浅薄想法 而仓促启程。只不过在抵达终点时仍担心不已,不知是否已实现出发时的雄心壮志。因此, 读者诸君在阅读本译本时如果遇到了任何表达上的疑惑,或是发现了任何翻译上的错误,还 请务必与译者联系,指出个中疑惑或疏漏、错误,以便更好地改进这一译本,为后来的其他 学习者提供更为有用的帮助。
在翻译过程中,译者得到了诸如 Nakagawa Kanon,Zxteloiv,Yukko 等其他不能一一列清姓 名的友人帮助,是他们向我解释概念,提出更精准的译法。在面对我这一个新手时常流露出 的无知与莽撞时他们所展现出的包容和耐心予我莫大鼓励,在此要对他们表示感谢。
有关对于本书内容方面的感想或谢意,你可以将其直接寄给原作者 SwaroopC H(blog@swaroopch.com)。有关译本在翻译方面存在的任何疑惑与问题,你可以通过电子 邮件(i@molun.net)与译者取得联系。而受限于译者在编程方面的浅薄学识,对于本书在学 习过程中产生的编程方面的疑惑,很可能不能为读者诸君提供有用的解答,这点还望见谅。
在此,预祝你的 Python 学习之路能一路畅通无阻,携坚持与毅力出发,最后满载而归。
漠伦
2017年1月2日
修订追记
本书在译成后得到了诸多读者的指正,以下列出对本译本的修改提出过建议的读者,并感谢 他们的意见与建议。所有排名不分先后。
2017 年 1 月 3 日至 1 月 8 日,陆续进行了错字漏字的订正。依 anglum 与 slimray 的建议对 《面向对象编程》一章的部分翻译作了修改,并修正了错误。经 行走的鱼2001 指正改正了 《函数》一章的错误。经 lefinite 指正改正了《数据结构》一章的错误。经 Zhanyu Wang 指 正改正了《模块》一章的错误。经 nonozone 与 张小西 指正改正了《基础》一章的错误。在 ivysrono 协助下改正了《函数》《模块》两章的错误。——以上修订体现在 4.01c 版中
2017年 1 月 9 日至 2 月 16 日,陆续进行了错字漏字订正与部分译文重写。依 Haruki Kirigaya、Yuki Kiriyama、Nakagawa Kanon 指正改写了《面向对象编程》一章的部分译文。 经 Cloud 指正改正了《运算符与表达式》一章的错误。经 yurikaka 指正改正了《前言》《基 础》《运算符与表达式》几章的错误。经 aristotll 指正改正了《标准库》一章的错误。经 Tian Zhao 指正改正了《解决问题》一章的错误。——以上修订体现在 4.02c 版中。
2017 年 3 月 19 日,进行了错字漏字订正。依 Tian Zhao 指正,改正了《解决问题》一章的 错误。依 yangyangwithgnu 指正修改了《基础》《函数》《模块》《解决问题》《面向对象 编程》《数据结构》《标准库》《迈出下一步》《FLOSS》章节的错误。追忆、Yang 同样指 出了前述的部分错误。——以上修订体现在 4.03c 版中。
2017 年 5 月 1 日,进行了错字漏字订正与部分译文重写。依 Nangcr 建议修改了《控制流》 一章的部分措辞。依邹鹏、Haruki Kirigaya、Yuki Kiriyama、藍星アキラ、shuven 指正与建 议改写了《面向对象编程》一章的部分译文与多处翻译错误。——以上修订体现在 4.04c 版 中。
2017 年 7 月 6 日,进行了错字漏字订正。在 shuizhongyueming 的帮助下修改了《运算符与 表达式》《安装》《面向对象编程》章节的错误。在 Leon0824 的帮助下修改了《基础》 《函数》《模块》几章的错误。依 cobeeee 指正修改了《翻译》一章的错误。依 Alexander Nie 的指正调整了《函数》章节的部分内容。依 192****543 指正修改了《第一步》章节的错 误。依 薛景老师 指正改正了《关于 Python》章节的错误。依 genkagen 指正改正了《异常》 《输入与输出》章节的错误。依 nastydt 指正改正了《面向对象编程》《运算符与表达式》一 章的错误。依 wang454 指正改正了某一示例程序的错误。——以上修订体现在 4.05c 版中。
2017 年 7 月 28 日,进行了错字漏字订正。依 David Wang 的指正改正了《更多》《迈出下 一步》章节的错误。依 薛景老师 指正改成了《第一步》《基础》《运算符与表达式》《控制 流》章节的错误。依 Lulu Zeng 指正修改了《面向对象编程》章节的错误。依 LazyWolf Lin 指正与建议修改了《控制流》《函数》章节的错误与措辞。依 Kuno Kuno 指正修改了《面向 对象编程》章节的错误。依 Cobeee 指正修改了《本书由来》章节的错误。本次修订得到了 Haruki Kirigaya 的协助,他参与修改了部分上述提到的错误,并指出了其它错误,具体章节 包括《第一步》《基础》《运算符与表达式》《控制流》《函数》《解决问题》《面向对象 编程》《异常》,在此深表感谢。——以上修订体现在 4.06c 版中。

下一篇专栏


