Skip to content

Commit 83c7c6a

Browse files
committed
Upload new translated chapter and Fix other chapters' typo problems.
1 parent 1cb6906 commit 83c7c6a

19 files changed

+296
-51
lines changed

06.first_steps.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 第一步
22

3-
接下来我们将看见如何在 Python 中运行一个传统的“Hello World”程序。本章将会教你如何编写、保存与运行 Python 程序。
3+
接下来我们将看见如何在 Python 中运行一个传统的“Hello World”程序。本章将会教你如何编写、保存与运行 Python 程序。
44

55
通过 Python 来运行的你的程序有两种方法——使用交互式解释器提示符或直接运行一个源代码文件。我们将了解如何使用他们二者的功能。
66

@@ -128,7 +128,7 @@ print("hello world")
128128

129129
启动你所选择的编辑器,输入如下程序并将它保存为 `hello.py`
130130

131-
如果你正在使用 PyCharm,我们已经[如何从源文件中运行它了](#pycharm)。
131+
如果你正在使用 PyCharm,我们已经讨论过[如何从源文件中运行它了](#pycharm)。
132132

133133
对于其它编辑器,打开一个新文件名将其命名为 `hello.py` ,然后输入如下内容:
134134

07.basics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,6 @@ IndentationError: unexpected indent
430430

431431
[^4]: “原始字符串”原文作 Raw String。沈洁元译本译作“自然字符串”。
432432

433-
[^5]: 沈洁元译本将其翻译为“明确的行连接”。
433+
[^5]: 沈洁元译本译作“明确的行连接”。
434434

435435
[^6]: 空白区原文作“Whitespace”,沈洁元译本译作“空白”。它可能被理解成“空格”,但为了与后文的空格(Space)区分,此处取字面意。

08.op_exp.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
你所编写的大多数语句(逻辑行)都包含了_表达式(Expressions)_。一个表达式的简单例子便是 `2+3`。表达式可以拆分成可以细分为运算符(Operators)与操作数(Operands)。
44

5-
_运算符_是进行某些操作、并且可以用诸如 `+` 等符号或特殊关键词加以表达的功能。运算符需要一些数据来进行操作,这些数据就被称作_操作数_。在上面的例子中 `2``3` 就是操作数。
5+
_运算符(Operators)_是进行某些操作、并且可以用诸如 `+` 等符号或特殊关键词加以表达的功能。运算符需要一些数据来进行操作,这些数据就被称作_操作数(Operands)_。在上面的例子中 `2``3` 就是操作数。
66

77
## 运算符
88

@@ -221,4 +221,4 @@ Perimeter is 14
221221

222222
[^8]: 原文作 Evaluation Order。
223223

224-
[^9]: 沈洁元译本将本节标题译作“结合规律”。
224+
[^9]: 原文作 Associativity,沈洁元译本译作“结合规律”。

09.control_flow.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
截止到现在,在我们所看过的程序中,总是有一系列语句从上到下精确排列,并交由 Python 忠实地执行。如果你想改变这一工作流程,应该怎么做?就像这样的情况:你需要程序作出一些决定,并依据不同的情况去完成不同的事情,例如依据每天时间的不同打印出 '早上好' 'Good Morning' 或 '晚上好' 'Good Evening'?
44

5-
正如你你可能已经猜测到的那番,这是通过控制流语句来实现的。在 Python 中有三种控制流语句——`if` `for``while`
5+
正如你你可能已经猜测到的那番,这是通过控制流语句来实现的。在 Python 中有三种控制流语句——`if` `for``while`
66

77
## `if` 语句
88

@@ -97,7 +97,7 @@ if True:
9797

9898
然后 `for` 循环就会在这一范围内展开递归——`for i in range(1,5)` 等价于 `for i in [1, 2, 3, 4]`,这个操作将依次将队列里的每个数字(或是对象)分配给 `i`,一次一个,然后以每个 `i` 的值执行语句块。在本例中,我们这一语句块所做的就是打印出这些值。
9999

100-
同样要记住,`else` 部分是可选的。当循环中包含他时,它总会在 `for` 循环结束后开始执行,除非程序遇到了 <<the_break_statement,break>> 语句。
100+
同样要记住,`else` 部分是可选的。当循环中包含他时,它总会在 `for` 循环结束后开始执行,除非程序遇到了 [break](#break-statement) 语句。
101101

102102
另一个需要注意的地方是 `for...in` 能在任何队列中工作。在这里,我们有的是通过内置的 `range` 函数生成的一串数字列表,但总体来说我们可以包含任何类型对象的队列!我们将会在后面的章节详细解释这一观念。
103103

10.functions.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
函数(Functions)是指可重复使用的程序片段。它们允许你为某个代码块赋予名字,允许你通过这一特殊的名字在你的程序任何地方来运行代码块,并可重复任何次数。这就是所谓的*调用(Calling)*函数。我们已经使用过了许多内置的函数,例如 `len``range`
44

5-
函数概念可能是在任何非平凡的软件(无论使用的是何种编程语言)中**重要的构建块,所以我们接下来将在本章中探讨有关函数的各个方面。
5+
函数概念可能是在任何不平凡的软件(无论使用的是何种编程语言)中**重要的构建块,所以我们接下来将在本章中探讨有关函数的各个方面。
66

77
函数可以通过关键字 `def` 来定义。这一关键字后跟一个函数的*标识符*名称,再跟一对圆括号,其中可以包括一些变量的名称,再以分号结尾,结束这一行。随后而来的语句块是函数的一部分。下面的案例将会展示出这其实非常简单:
88

@@ -84,7 +84,7 @@
8484

8585
对于一些函数来说,你可能为希望使一些参数*可选*并使用默认的值,以避免用户不想为他们提供值的情况。默认参数值可以有效帮助解决这一情况。你可以通过在函数定义时附加一个赋值运算符(`=`)来为参数指定默认参数值。
8686

87-
要注意到,默认参数值应该是常数。更确切地说,默认参数值应该是不可变的——这将在后面的章节中予以更详细的解释。就目前来说,只要记住就是
87+
要注意到,默认参数值应该是常数。更确切地说,默认参数值应该是不可变的——这将在后面的章节中予以更详细的解释。就目前来说,只要记住就行了
8888

8989
案例(保存为 `function_default.py`):
9090

@@ -106,11 +106,11 @@
106106
>
107107
> 这是因为值是按参数所处的位置依次分配的。举例来说,`def func(a, b, 5)` 是有效的,但 `def func(a=5, b)`*无效的*
108108
109-
## 关键词参数[^3]
109+
## 关键字参数[^3]
110110

111111
如果你有一些具有许多参数的函数,而你又希望只对其中的一些进行指定,那么你可以通过命名它们来给这些参数赋值——这就是*关键字参数(Keyword Arguments)*——我们使用命名(关键字)而非位置(一直以来我们所使用的方式)来指定函数中的参数。
112112

113-
这样做有两大有点——其一,因为我们不再需要考虑参数的顺序,函数的使用将更加容易。其二,我们可以只对那些我们希望赋予的参数以赋值,只要其它的参数都具有默认参数值。
113+
这样做有两大有点——其一,我们不再需要考虑参数的顺序,函数的使用将更加容易。其二,我们可以只对那些我们希望赋予的参数以赋值,只要其它的参数都具有默认参数值。
114114

115115
案例(保存为 `function_keyword.py):
116116

@@ -132,7 +132,7 @@
132132

133133
## 可变参数[^4]
134134

135-
有时你可能向定义的函数里面能够有_任意_数量的变量,也就是参数数量可变的,这可以通过使用星号来实现(将下方案例保存为 `function_varargs.py`):
135+
有时你可能想定义的函数里面能够有_任意_数量的变量,也就是参数数量是可变的,这可以通过使用星号来实现(将下方案例保存为 `function_varargs.py`):
136136

137137
<pre><code class="lang-python">{% include "./programs/function_varargs.py" %}</code></pre>
138138

@@ -142,7 +142,7 @@
142142

143143
**它是如何工作的**
144144

145-
当我们声明一个诸如 `*param` 的星号参数 时,从此处开始直到结束的所有位置参数(Positional Arguments)都将被收集并汇集成一个称为“param”的元组(Tuple)。
145+
当我们声明一个诸如 `*param` 的星号参数时,从此处开始直到结束的所有位置参数(Positional Arguments)都将被收集并汇集成一个称为“param”的元组(Tuple)。
146146

147147
类似地,当我们声明一个诸如 `**param` 的双星号参数时,从此处开始直至结束的所有关键字参数都将被收集并汇集成一个名为 `param` 的字典(Dictionary)。
148148

@@ -220,4 +220,4 @@ Python 有一个甚是优美的功能称作*文档字符串(Documentation Stri
220220

221221
[^4]: 原文作 VarArgs Parameters,VarArgs 来自于英文“可变的”“参数”两个英文单词的结合,即 **Var**iable **Arg**uments。
222222

223-
[^5]: 此处原文所指为英文文档字符串内容
223+
[^5]: 此处指的是以英文撰写的文档字符串内容

11.modules.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ from mymodule import *
119119

120120
> **Python 之禅**
121121
>
122-
> Python 的一大指导原则是“明了胜过晦涩”。你可以通过在[^2] Python 中运行 `import this` 来了解更多内容。
122+
> Python 的一大指导原则是“明了胜过晦涩”[^2]。你可以通过在 Python 中运行 `import this` 来了解更多内容。
123123
124124
## `dir` 函数 {#dir-function}
125125

@@ -205,7 +205,7 @@ $ python
205205

206206
## 总结
207207

208-
如同函数是程序中的可重用部分那般,模块是一走灰姑娘可重用的程序。包是用以组织模块的另一种层次结构。Python 所附带的标准库就是这样一组有关包与模块的例子。
208+
如同函数是程序中的可重用部分那般,模块是一种可重用的程序。包是用以组织模块的另一种层次结构。Python 所附带的标准库就是这样一组有关包与模块的例子。
209209

210210
我们已经了解了如何使用这些模块并创建你自己的模块。
211211

0 commit comments

Comments
 (0)