Skip to content

Commit 232e0e1

Browse files
committed
Fix typo problems and correct some translatons.
Thanks slimray from GitBook and anglum from Zhihu.
1 parent 6af9363 commit 232e0e1

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

03.2.translator-preface.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 译者前言
22

3-
如果一位新手想要学习编程,那么 Python 一定能排在推荐清单的最前列。而如果要想学习 Python,Swaroop C H 所撰写的《Byte of Python》一定也能排在推荐教材的靠前位置。作为一本旨在简明、易懂地传授 Python 知识的教材,这本采用知识共享协议免费分发的图书一经刊行就流行于世界各地,不仅被翻译成各种语言,还被许多大学或教育机构采用用作正式的教学教材。它在中国还有一个流传已久的名字——《简明 Python 教程》。
3+
如果一位新手想要学习编程,那么 Python 一定能排在推荐清单的最前列。而如果要想学习 Python,Swaroop C H 所撰写的《A Byte of Python》一定也能排在推荐教材的靠前位置。作为一本旨在简明、易懂地传授 Python 知识的教材,这本采用知识共享协议免费分发的图书一经刊行就流行于世界各地,不仅被翻译成各种语言,还被许多大学或教育机构采用用作正式的教学教材。它在中国还有一个流传已久的名字——《简明 Python 教程》。
44

55
2005 年,沈洁元将《Byte of Python》的 1.20 版本引进中国,并完成了全本翻译,将其译名定为《简明 Python 教程》。十余年来,这一译本流行于各大网站,想必自是为无数新晋的 Python 学习者以及业已有编程经验的程序员们提供了莫大帮助。
66

@@ -32,4 +32,4 @@
3232

3333
本书在译成够得到了诸多读者的指正,以下列出对本译本的修改提出过建议的读者,并感谢他们的意见与建议。所有排名不分先后。
3434

35-
2017 年 1 月 2 日,进行了错字漏字的订正。依 anglum 的建议对《面向对象编程》一章的部分翻译作了修改。
35+
2017 年 1 月 2 日,进行了错字漏字的订正。依 anglum 的建议对《面向对象编程》一章的部分翻译作了修改。经 slimray 的指正修正了《面向对象编程》一章的错误。

12.data_structures.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Python 中有四种内置的数据结构——_列表(List)、元组(Tuple
7070

7171
> **包含 0 或 1 个项目的元组**
7272
>
73-
> 一个空的元组由一堆圆括号构成,就像 `myempty = ()` 这样。然而,一个只拥有一个项目的元组并不像这样简单。你必须在第一个(也是唯一一个)项目的后面加上一个逗号来指定它,如此一来 Python 才可以识别出在这个表达式想表达的究竟是一个元组还是只是一个被括号所环绕的对象,也就是说,如果你想指定一个包含项目 `2` 的元组,你必须指定 `singleton = (2, )`
73+
> 一个空的元组由一对圆括号构成,就像 `myempty = ()` 这样。然而,一个只拥有一个项目的元组并不像这样简单。你必须在第一个(也是唯一一个)项目的后面加上一个逗号来指定它,如此一来 Python 才可以识别出在这个表达式想表达的究竟是一个元组还是只是一个被括号所环绕的对象,也就是说,如果你想指定一个包含项目 `2` 的元组,你必须指定 `singleton = (2, )`
7474
7575
<!-- -->
7676

@@ -82,7 +82,7 @@ Python 中有四种内置的数据结构——_列表(List)、元组(Tuple
8282

8383
字典就像一本地址簿,如果你知道了他或她的姓名,你就可以在这里找到其地址或是能够联系上对方的更多详细信息,换言之,我们将*键值(Keys)*(即姓名)与*值(Values)*(即地址等详细信息)联立到一起。在这里要注意到键值必须是唯一的,正如在现实中面对两个完全同名的人你没办法找出有关他们的正确信息。
8484

85-
另外要注意的是你只能使用不可变的对象(如字符串)作为字典的键值,但是你可以使用可变或不可变得对象作为字典中的值。基本上这段话也可以翻译为你只能使用简单对象作为键值。
85+
另外要注意的是你只能使用不可变的对象(如字符串)作为字典的键值,但是你可以使用可变或不可变的对象作为字典中的值。基本上这段话也可以翻译为你只能使用简单对象作为键值。
8686

8787
在字典中,你可以通过使用符号构成 `d = {key : value1 , key2 : value2}` 这样的形式,来成对地指定键值与值。在这里要注意到成对的键值与值之间使用冒号分隔,而每一对键值与值则使用逗号进行区分,它们全都由一对花括号括起。
8888

13.problem_solving.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848

4949
`time.strftime()` 函数会遵循某些格式(Specification),其中一种就如我们在上方程序中所使用的那样。`%Y` 将被替换成带有具体世纪的年份。`%m` 将会被替换成以 `01``12` 的十进制数所表示的月份。有关这些格式的全部列表可以在[ Python 参考手册](http://docs.python.org/3/library/time.html#time.strftime)中查询到。
5050

51-
我们使用_连接(Concatenates)_字符串的加法运算符来创建目标 zip 文件的文件名,也就是说,它将两个字符串连接到一起并返回一个新的字符串。然后,我们创建了一串字符串 `zip_command`,其中包括了我们要执行的命令。如果这条命令不能正常工作,你可以把它拷贝到 Shell(GNU/Linux 终端或 DOS 提示符)中进行检查。
51+
我们使用_连接(Concatenates)_字符串的加法(`+`)运算符来创建目标 zip 文件的文件名,也就是说,它将两个字符串连接到一起并返回一个新的字符串。然后,我们创建了一串字符串 `zip_command`,其中包括了我们要执行的命令。如果这条命令不能正常工作,你可以把它拷贝到 Shell(GNU/Linux 终端或 DOS 提示符)中进行检查。
5252

5353
我们使用的 `zip` 命令会有一些选项与参数需要传递。`-r` 选项用以指定 zip 命令应该**递归地****R**ecursively)对目录进行工作,也就是说它应该包括所有的子文件夹与其中的文件。这两个选项结合到一起并可以指定一个快捷方式作 `-qr`。选项后面跟着的是将要创建的 zip 文件的名称,再往后是需要备份的文件与目录的列表。我们通过使用已经讨论过并已了解该如何运用的的字符串方法 `join` 来将列表 `source` 转换成字符串。
5454

14.oop.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 面向对象编程 {#oop}
22

3-
在至今我们编写的所有程序中,我们曾围绕函数设计我们的程序,也就是那些能够处理数据的代码块。这被称作_面向过程(Procedure-oriented)_的编程方式。还有另外一种组织起你的程序的方式,它将数据与功能进行组合,并将其包装在被称作“对象”的东西内。在大多数情况下,你可以使使用过程式编程,但是当你需要编写一个大型程序或面对某一更适合此方法的问题时,你可以考虑使用面向对象式的编程技术。
3+
在至今我们编写的所有程序中,我们曾围绕函数设计我们的程序,也就是那些能够处理数据的代码块。这被称作_面向过程(Procedure-oriented)_的编程方式。还有另外一种组织起你的程序的方式,它将数据与功能进行组合,并将其包装在被称作“对象”的东西内。在大多数情况下,你可以使用过程式编程,但是当你需要编写一个大型程序或面对某一更适合此方法的问题时,你可以考虑使用面向对象式的编程技术。
44

55
类与对象是面向对象编程的两个主要方面。一个**类(Class)**能够创建一种新的_类型(Type)_,其中**对象(Object)**就是类的**实例(Instance)**。可以这样来类比:你可以拥有类型 `int` 的变量,也就是说存储整数的变量是 `int` 类的实例(对象)。
66

@@ -113,7 +113,7 @@ _字段(Filed)_有两种类型——类变量与对象变量,它们根据
113113

114114
除了 `Robot.popluation`,我们还可以使用 `self.__class__.population`,因为每个对象都通过 `self.__class__` 属性来引用它的类。
115115

116-
`hoe_many` 实际上是一个属于类而非属于对象的方法。这就意味着我们可以将它定义为一个 `classmethod(类方法)` 或是一个 `staticmethod(静态方法)`,这取决于我们是否知道我们需不需要知道我们属于哪个类。由于我们已经引用了一个类变量,因此我们使用 `classmethod(类方法)`
116+
`how_many` 实际上是一个属于类而非属于对象的方法。这就意味着我们可以将它定义为一个 `classmethod(类方法)` 或是一个 `staticmethod(静态方法)`,这取决于我们是否知道我们需不需要知道我们属于哪个类。由于我们已经引用了一个类变量,因此我们使用 `classmethod(类方法)`
117117

118118
我们使用[装饰器(Decorator)](./18.more.md#decorator)`how_many` 方法标记为类方法。
119119

@@ -135,7 +135,7 @@ how_many = classmethod(how_many)
135135

136136
因此,你需要遵循这样的约定:任何在类或对象之中使用的对象其命名应以下划线开头,其它所有非此格式的名称都将是公开的,并可以为其它任何类或对象所使用。请记得这只是一个约定,Python 并不强制如此(除了双下划线前缀这点)。
137137

138-
> **战队 C++/Java/C# 程序员的提示**
138+
> **针对 C++/Java/C# 程序员的提示**
139139
>
140140
> 所有类成员(包括数据成员)都是_公开的_,并且 Python 中所有的方法都是_虚拟的(Vireual)_
141141

0 commit comments

Comments
 (0)