简明 Python 教程

《A Byte of Python》是一本由 Swaroop C H 编写,旨在于介绍如何使用 Python 语言进行编程的自由图书。它以教材与指南的形式为入门者介绍 Python 语言。如果你对电脑知识的了解仅限于如何保存文本文件的话,那这本书就是为你准备的。

2005 年,沈洁元将本书的 1.20 版引进中国,并完成了全本翻译,将本书的译名定为《简明 Python 教程》。2017年,漠伦基于原书 4.0 版重新翻译,制作了本版全新译本,并沿用同样的译名。

本版译本定义为 4.08c 版。最后修订于 2018 年 2 月 4 日。

有关 Python 3

本书将指导你如何使用 Python 3。同时,本书也会以指南的形式告诉你应如何适应虽老些但使用更加普遍的 Python 2。

都有谁阅读了本书? {#who-reads-bop}

下面是一些人对本书的评价:

这本书是我所见过的最好的新手教程!感谢你所做的努力。
——Walt Michalik

我所遇见的最好的事就是发现了《简明 Python 教程》,它确实是一本为新手准备的绝佳书籍。它撰写出色,清楚解释了诸多定义,并都配以了清晰的案例。
Joshua Robin

一份面向新手的出色而温和的 #Python 编程指南。
Shan Rajasekaran

最佳 Python 新手指南
Nickson Kaigi

在每一页的阅读中开始爱上 Python。
Herbert Feutl

Python 的最佳新手教程,它将会给你一把打开 Python 奇幻世界的钥匙。
Dilip

我本应开始我实际的“工作”,但我却恰巧发现了这本《简明 Python 教程》。一本附有优秀例子的杰出教材。
Biologist John

最近我开始阅读《简明 Python 教程》。一部优秀的作品。而且它是免费的。强烈推荐给那些具有抱负的 Pythonistas(译注:热衷使用 Python 语言编程的人)。
Mangesh

《简明 Python 教程》,由 Swaroop 撰写(我目前在读的书)。可能是最适合用以入门,也可能世界上最好的面向每一位新手甚至是有经验的用户的教材。
Apostolos

阅读 @swaroopch 所撰写的最好的一本书 #ByteOfPython 确是享受。
Yuvraj Sharma

十分感谢你撰写了《简明 Python 教程》。我两天前才刚刚开始学习如何编写代码,现在我已经完成了两款简单游戏的编写。你编写的教程十分完美,我在此就是想让你知道它是多么富有价值。
— Franklin

我是一名来自 Dayanandasagar 大学的工程学(第七期,CSE)学生。首先,我想说你的《简明 Python 教程》这本书非常适合像我这样的 Python 新手。被出色解释清楚的概念以及简单的例子帮助我更加容易地学习 Python。十分感谢你。
— Madhura

我是一名 18 岁学生,现在在爱尔兰的大学学习信息技术。我希望能在此表达我的感激之情:感谢你写出了《简明 Python 教程》。此前我已经具备了 3 门编程语言的知识——C,Java,还有 Javascript。而 Python 是我所接触并学习过的编程语言里最简单的一门,这全都要归功于你的这本书,它是如此优秀,将学习 Python 的历程变得如此简单而有趣。这是我所读过的有关编程的书籍里最优秀的一本。祝贺你所完成的这项伟大工作,并希望你能将它继续下去。
— Matt

嗨,我来自多米尼加共和国,我的名字是 Pavel。最近我读了你的 《简明 Python 教程》,发现它是如此精彩!:)我从这些范例中学到了很多。你的这本书对像我这般的新手提供了很大的帮助。
Pavel Simo

我是一名来自中国的学生。现在,我读了你的《简明 Python 教程》这本书,不由感叹它实在是太美妙了。这本书是如此简明扼要但却能帮助所有第一次学习编程的人。你知道,我对 Java 抱有兴趣,并且运行过很多次云计算。我曾为服务器编写程序,所以我觉得 Python 会是一个好选择。在阅读完你的这本书后,我觉得这不仅仅只是一个好选择,而是我必须、理应使用 Python。我的英语算不上很好,寄这一封邮件只是想向你诉说一声“谢谢”!为你与你的家人致以我最好的祝福。
— Roy Lau

我最近刚刚完成了对《简明 Python 教程》的阅读,我觉得我实在应当感谢你。在阅读到最后一页后,我对自己将要重归于其它沉闷、枯燥、乏味的 Python 教程与指南中而伤心不已。无论如何,我真的很感谢你的这本书。
Samuel Young

亲爱的 Swaroop,我正上着一门对教学了无兴趣的教师所教授的课程。我们正在使用由 O’Reilly 出品的《Python 学习手册(Learning Python)》第二版。它并非面向没有任何编程知识的初学者的教材,而一名教师应该在另一种领域来进行教学。非常感谢你的这本书,如果没有它那我在 Python 和编程面前只能碌碌无为。真的是万分感谢,你能够打破这信息的壁垒使得每一个初学者都可以理解这些内容,这并非每个人都能做到的事情。
Joseph Duarte

我真是喜欢你的这本书!它真的是最好最好的 Python 教程,同时也是非常有用的参考。令人赞叹,真正的杰作!愿你能够继续这项伟大的工作!
— Chris-André Sommerseth

首先,我希望能够向你表达我对这本优秀的书的感谢。我认为这是一本对于那些正在寻找优秀的 Python 初学者教程的人的最佳教材。
我想可能是在两三年前,当我第一次听说这本书时,那时的我尚不能阅读英语撰写的书籍,所以我找到了一本中文译本,是那本中文译本将我带进了 Python 编程世界的大门。
最近,我重新读了这本书。当然,这一次我读的是英语版本的。我简直不敢相信我可以不借助手边的字典就读完这本书。自然,它全应归功于你的工作,是你让这本书变得如此易于理解。
myd7349

我在此通过邮件对你在网络上撰写的《简明 Python 教程》向你表达感谢。在遇到你的这本书之前,我曾花费数月的时间来尝试使用 Python,尽管我通过 pyGame 获得了些许收获,但我还尚未完成一款程序。
感谢你简化了个中类别,使得学习 Python 真的变成了看起来能够达到的目标。现在看来我已经学会了 Python 的基础,并且能够继续下去,实现我的目标——游戏开发。
……
再一次感谢你在网络上提供这本结构化、对基础编程很有帮助的教程。它助我对 OOP(面向对象编程)内外都有了足够的理解,这是过去我所学习的两本教材都没能做到的事情。
Matt Gallivan

我要感谢你和你的书 《简明 Python 教程》,它是我所能找到的最好的编程学习方式。我的名字叫 Ahmed,15岁,来自埃及。Python 是我学习的第二门编程语言。我曾在学校学习了 Visual Basic 6,但并不是很喜欢它,但现在我十分享受学习 Python 的过程。我编写了一款通讯录程序并且取得了成功。我将开始尝试编写更多程序,也试着去阅读 Python 程序(如果你能告诉我它们的源代码,那会对我大有帮助)。我现在也开始学习 Java,如果你能够告诉我哪里能找到如你的这本书这般优秀的 Java 教程,那真的是帮到我大忙了。感谢你。
Ahmed Mohammed

由 Swaroop C H 撰写的《简明 Python 教程》这本 110 页的 PDF 教程是针对想要更多地了解 Python 的初学者的绝佳资源。它精心编写,易于跟随,同时还可能是针对 Python 编程的最佳介绍。
Drew Ames

昨天我在我的诺基亚 N800 上阅读了《简明 Python 教程》的大部分内容,这是我所遇到过的最简单也最简洁的 Python 介绍。强烈推荐以这本书作为你学习 Python 的起点。
Jason Delport

@swaroopch 撰写的《简明 Vim 教程(Byte of Vim)》与《简明 Python 教程》是我到目前所遇见的最好的技术写作作品。它们都是优秀的作品。#FeelGoodFactor
Surendran

《简明 Python 教程》是最好的。
(对问题“有人能推荐一本优秀且便宜的用来学习 Python 基础的资源吗?”的回答)
Justin LoveTrue

《简明 Python》十分有帮助……万分感谢。:)
Chinmay

一直以来都是《简明 Python 教程》的粉丝——它同时为新程序员与有经验的程序员所编写。
Patrick Harrington

从几天前我开始从你的书中学习 Python……感谢这本优秀的书。它撰写的如此优秀,使我的学习生活 更加容易……现在你有了一名新粉丝——那就是我。:)万分感谢。
Gadadhari Bheem

在我学习 Python 之前,我已经具有了 Assembly、C、C++、C# 和 Java 的基本编程能力。我想学习 Python 的原因是它十分流行(人们都在谈论它)且功能强大(现实如此)。这本由 Swaroop 先生所撰写的书是一本非常好的教材,它同时面向新程序员与新 Python 程序员。我花了 10 个半天来读完它,十分有帮助!
Fang Biyi (电气与计算机工程学博士候选人,密歇根州立大学)

为这本书向你致谢!!
这本书消除了我在 Python 方面诸如面向对象编程等许多问题。
我不觉得我是 OO 方面的专家,但我知道这本书在我迈出的第一与第二步上帮助颇多。
我已经编写了几款 Python 程序,它们确实在我的系统管理员工作中帮我解决了诸多事情。它们都是程序性的,但是在许多人的标准看来它们都如此小巧。
再次感谢这本书。感谢你将它公开在网络上。
— Bob

我希望为你撰写的这本我所阅读过的最佳编程书籍向你表示感谢。Python 并不是我使用的第一门语言,但我可以想象它可以拥有的一切可能性。十分感谢你予我这个工具,让我可以创造那些我从未想过我能创造的一切。
— “The Walrus”

我希望为你所撰写的 《简明 Python 教程》(第 2 版与第 3 版) 向你表示感谢。它在我整个学习 Python 与编程的历程中弥足珍贵。
不必多言,我是编程世界里的一名新手,我耗费了几个月的时间自己学习从而达到这样的程度。我曾通过 Yotube 教程和其它的一些诸如免费图书的在线教程来学习编程。就在昨天我决定深入学习你的这本书,现在我已经学了开头的几页,这比我在其他任何一本书或教程中所走过的进度都要多。有些事我曾一度感到困惑,但在这本书里这些优秀的解释和范例面前都得以解答。我已经等不及去阅读(学习)之后的更多内容了!
非常感谢你,不仅是撰写了这本书,还愿意把它通过知识共享协议授权分发(免费地)。感谢上帝,正是如此这样无私的人们帮助并教导了我们其余的这些人。
— Chris

在 2011 年时我曾向你写信,那时我才刚刚开始使用 Python,并想为你的教程《简明 Python 教程》向你表示感谢。如果没有它,我想我只会倒在路边。自那时起我已经在我的组织中使用 Python 这门语言编写程序,实现诸多功能,而在未来我相信我能写得更多。无论如何我也不会把自己称作一名高级程序员,但我发现自从我开始使用 Python 后,现在我时不时会收到来自他人的协助请求。我发现,在阅读《简》时,我已经放弃学习 C 和 C++,因为那些书里在一开始就向我抛出了一个包含增量赋值(Augmented Assignment)的例子。自然,没有任何为何有关在此安排这一赋值的解释,我只能用尽我的头脑去弄清楚纸上印出来的到底是什么内容。这是我所能记得的最令人沮丧的经历,最终我选择了放弃。这并不是意味着 C 或 C++ 是不可能学会的,抑或我是一个蠢蛋,但它的确意味着我工作中所拥有的文档不会包括任何有关符号或词语的定义,而这些确是在任何介绍中都至关重要的部分。正如计算机不能理解在其所使用的语言的语法之外的计算机词汇或计算机符号一般 ,任何一个领域的新学生如果遇到的全都是没有定义的符号与词汇,他就不能领会其主题所在。你会遇到某一情况下的“蓝屏”。其解决方案简单明了:找到个中词汇与符号并理解其正确的定义,如此一来——你瞧,计算机和学生都可以继续进行他们的任务。你的这本书将二者结合得如此之好,我在其中只有很少的部分无法掌握。因此,谢谢你。我鼓励您继续在书中囊括各术语的完整定义。一旦你有所了解,就能知道Python 的文档是优秀的(于我所见,范例就是它的力量)。但是在许多情况下,为了理解文档,你必须了解在我看来并不需要知道的东西。第三方教程都表示需要借助文档来澄清,它们的成功很大程度上都归功于那些用来描述术语的词语。我已经将你的这本书推荐给其他许多人。有的来自澳大利亚,有的在加勒比,还有一些在美国。它填补了其他人没能填补的位置。我希望你能继续这样好好做下去,并祝愿你在未来的所有成功。
— Nick

嗨,我是 Ankush(19岁)。我现在正在面对开始学习 Python 的巨大困难。我尝试了许多教材但它们都过于臃肿,而且也非目标导向;尔后我便遇到这可爱的一本,让我在短时间内就爱上了 Python。十分感谢这本“美妙的一本书”。
— Ankush

我要感谢你这本出色的 Python 指南。我是一位分子生物学家(仅有些许编程背景),在我的工作中我需要处理有关 DNA 序列的大数据集,还要分析显微镜图像。对于这些工作,采用 Python 编程对我十分有帮助,如果不是我必须要完成并发表一项历时六年的项目的话。
这样一本教程能够免费提供是邪恶尚未统治世界的确切标志!:)
— Luca

既然这(Python)将是你学习的第一门编程语言,你应该采用《简明 Python 教程》。它确实为 Python 编程提供了恰当的介绍,且节奏十分适合一般初学者。在此之后最重要的事自然是切实地开始开始练习编写你自己的小程序。
“{Unregistered}”

只是想满怀喜悦地大声说一声 十分感谢你,感谢你出版了《简明 Python 教程》和《简明 Vim 教程(A Byte of Vim)》。这两本书在我四五年前开始学习编程时对我大有帮助。现在我已经开始开发一项项目,一个开始于很久很久之前的梦想。我只是想对你说一声“谢谢你”。我将继续前进。你是我一大前进动力的来源。祝你一切顺利。
— Jocimar

在 3 天里我读完了《简明 Python 教程》。它真的非常有趣。书里面没有一页是无聊的。我希望能够理解 Orca 屏幕阅读器的代码。你的这本书有望成为我开始这项工作的装备。
— Dattatray

嗨,《简明 Python 教程》真的是一本非常好的面向 Python 初学者的教材。再次向你祝贺,好样的
我是一名来自中国的有 4 年开发经验的 Java 与 C 开发者。最近,我希望能够完成一些有关 Zim-Wiki 笔记项目的工作,它是通过 pygtk 来实现的。
我用了 6 天时间读完了你的书,现在我可以读写 Python 代码范例了。
感谢您的贡献。
请保持你的热情去让这个世界变得更好,这是来自中国的微小鼓励。
— Lee

我是来自台湾的 Isen,一名台湾大学电气工程专业的博士生。我想为你这本伟大的书向你表示感谢。我认为它不仅是易于阅读,而且还为 Python 新手提供了全面而完整的内容。促使我阅读你的这本书的原因是我开始在 GNU Radio 框架下工作。
我发现你不介意读者在你的书中向你表示感谢。我十分喜欢你的这本书并对它心怀感激。谢谢你。
Isen I-Chun Chao

还有,本书已被 NASA 采用!NASA 在它们的 喷气推进实验室(Jet Propulsion Laboratory) 及它们的深空网络计划中采用了本书。

学术课程

本书曾被或正在被各类教育机构当作他们的教材:

  • 阿姆斯特丹的自由大学 的 编程语言原理(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 教程》是我课上的强制性读物。”

许可证

本书是根据 Swaroop C H 所创作的《Byte of Python》翻译而来的译本。《Byte of Python》采用 知识共享 署名-相同方式共享 国际 4.0 协议(CC BY-SA Intl. 4.0) 进行授权,你可以在原书的官方网站上获取本书的全部原始内容。

本译本依据相关协议进行翻译与再分发。

对于本译本的文本内容,采用 知识共享 署名-相同方式共享 国际 4.0 协议(CC BY-SA Intl. 4.0) 进行授权。

你可以自由地:

分享 - 在任何媒介或格式下复制并分发本书。如转载至你的网站,或将其印刷后分发。

改编 - 对本书进行修改、重混、转换或依据本书进行再创作。如对本译本进行修改或编辑,并重新发布。

你可以于任何目的或环境使用本创作,即使运用于商业性用途。

唯须遵循以下条件:

署名 - 你必须明确说明本创作、或经过修改的原创作来源于何处,并提供原始链接以及授权协议的链接。同时,除非另有许可,你不得明示或暗示你的使用行为或商业行为,来自于创作的原作者的授意或授权,或已为你的使用行为背书。

相同方式共享 - 如果你对本书进行了修改、重混、转换,或依据本素材进行再创作,你必须采用与本书相同的许可协议来分发你的创作。

不得增加额外限制 - 你不能增设任何法律限制或是技术限制,来限制他人进行本许可证已经允许的行为。

另请注意:

  • 不要 销售本书的电子或印刷拷贝,除非你明确声明这些拷贝副本并 来自本书的原作者。
  • 在分发时 务必 在文档的介绍性描述或前页、头版中提供回溯至本书原书 {{ book.officialUrl }} 以及本译本 {{book.sctransUrl}} 的链接,并明确指出本书之原文与译本可在上述链接处获取。
  • 除非另有声明,本书所提供的所有代码与脚本均采用 3-clause BSD License 进行授权。

现在就开始阅读

你可以通过 {{ book.officialUrl }} 在线阅读本书英文原版。

本中文译版可通过 {{ book.sctransUrl }} 在线阅读。

购买本书

本书英文原版的印刷硬拷贝可在 {{ book.buyBookUrl }} 购得,用以获得离线阅读体验,同时也可向本书提供支持以推进后续的开发与改进。

本中文译版没有发行或许可发行任何印刷硬拷贝。但是其他商业或非商业组织可以在遵守授权协议的前提下自行印刷并发行本书的硬拷贝,这些行为并不需要得到原作者和译者的许可。译者不会因为这些印刷或发行行为获益,亦不对这些未经专门授权的印刷或硬拷贝版本的准确性负责。

下载

你可以访问 {{ book.transdownloadurl }} 以获得本书以下格式的下载:

上述下载链接由 GitBook 提供。本书在未来可能会有些许修订,GitBook 将在修订提交后自动生成最新版本。如果你打算下载一份电子书版用来离线阅读,建议隔一段时间后回来看看是否有新版。

本书采用 Markdown 进行写作。你可以访问 {{ book.transsourceurl }} 以获得本书的源代码内容(用以提交建议、更正或进行重发布)。

本书英文原版可以在 {{ book.officialUrl }} 在线浏览,其源代码内容可以在 {{ book.sourceUrl }} 获得。

在你使用的语言下阅读本书

如果你有意在其他人类语言下阅读本书,或为本书提供翻译,请参阅翻译如何翻译

来源

https://github.com/LenKiMo/byte-of-python