File tree Expand file tree Collapse file tree 6 files changed +10
-10
lines changed
Expand file tree Collapse file tree 6 files changed +10
-10
lines changed Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ Python 可能是极少数能够同时兼顾简单与功能强大的编程语言
1919## 值得思考的一些事情
2020
2121> 构建一项软件设计有两种方式:一种是将软件设计得足够简单以至于明显找不到缺陷;另一种是软件设计得足够复杂以至于找不到明显的缺陷。
22- > ——查尔斯·安东尼·霍尔爵士(C. A. R. Hoare)
22+ > ——查尔斯·安东尼·理查德· 霍尔爵士(C. A. R. Hoare)
2323
2424<!-- -->
2525
Original file line number Diff line number Diff line change 3232
3333本书在译成后得到了诸多读者的指正,以下列出对本译本的修改提出过建议的读者,并感谢他们的意见与建议。所有排名不分先后。
3434
35- 2017 年 1 月 3 日起,陆续进行了错字漏字的订正。依 anglum 与 slimray 的建议对《面向对象编程》一章的部分翻译作了修改,并修正了错误。经 行走的鱼2001 指正改正了《函数》一章的错误。经 lefinite 指正改正了《数据结构》一章的错误。经 Zhanyu Wang 指正改正了《模块》一章的错误。经 nonozone 指正改正了《基础》一章的错误。——以上修订体现在 4.01c 版中。
35+ 2017 年 1 月 3 日起,陆续进行了错字漏字的订正。依 anglum 与 slimray 的建议对《面向对象编程》一章的部分翻译作了修改,并修正了错误。经 行走的鱼2001 指正改正了《函数》一章的错误。经 lefinite 指正改正了《数据结构》一章的错误。经 Zhanyu Wang 指正改正了《模块》一章的错误。经 nonozone 与 张小西 指正改正了《基础》一章的错误。在 ivysrono 协助下改正了《函数》《模块》两章的错误 。——以上修订体现在 4.01c 版中。
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ Python 是一种极少数能声言兼具 _简单_ 与 _功能强大_ 的编程
1010
1111## 名字背后的故事
1212
13- Python 的创造者吉多·范罗苏姆(Guido van Rossum)采用 BBC 电视节目《蒙提·派森的飞行马戏团(Monty Python's Flying Circus)》的名字来为这门编程语言命名。尽管他本人并不特别喜欢蟒蛇这种通过在猎物身边卷曲自己的身体以此来碾碎猎物身体来进食的动物。
13+ Python 的创造者吉多·范罗苏姆(Guido van Rossum)采用 BBC 电视节目《蒙提·派森的飞行马戏团(Monty Python's Flying Circus,一译巨蟒剧团 )》的名字来为这门编程语言命名。尽管他本人并不特别喜欢蟒蛇这种通过在猎物身边卷曲自己的身体以此来碾碎猎物身体来进食的动物。
1414
1515## Python 的特色
1616
Original file line number Diff line number Diff line change @@ -228,7 +228,7 @@ r"Newlines are indicated by \n"
228228
229229## 变量
230230
231- 如果只使用字面常量很快就会让人感到无聊——我们需要需要一些能够存储任何信息并且也能操纵它们的方式 。这便是 _ 变量(Veriables)_ 登场的时刻。正如其名字所述那般,变量的值是可以变化的,也就是说,你可以用变量来存储任何东西。变量只是你的计算机内存中用以存储信息的一部分。与文字常量不同,你需要通过一些方式来访问这些变量,因此,你需要为它们命名。
231+ 如果只使用字面常量很快就会让人感到无聊——我们需要一些能够存储任何信息并且也能操纵它们的方式 。这便是 _ 变量(Veriables)_ 登场的时刻。正如其名字所述那般,变量的值是可以变化的,也就是说,你可以用变量来存储任何东西。变量只是你的计算机内存中用以存储信息的一部分。与文字常量不同,你需要通过一些方式来访问这些变量,因此,你需要为它们命名。
232232
233233## 标识符命名
234234
Original file line number Diff line number Diff line change @@ -207,7 +207,7 @@ Perimeter is 14
207207
208208[ ^ 1 ] : 按位与是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位都为 1 则此位为 1,否则为 0。在本例中,` 5 ` 的二进制表达为 ` 101 ` ,` 3 ` 的二进制表达为 ` 11 ` (为补全位数进行按位操作写作 ` 011 ` ),则按位与操作后的结果为 ` 001 ` ,对应的十进制数为 ` 1 ` 。
209209
210- [ ^ 2 ] : 按位或是针对二进制数的操作,指将两个二进制数的每一位都进行按比较 ,如果两个相应的二进位有一个为 1 则此位为 1,否则为 0。在本例中,` 101 ` 与 ` 011 ` 进行按位或操作后的结果为 ` 111 ` ,对应十进制数为 ` 7 ` 。
210+ [ ^ 2 ] : 按位或是针对二进制数的操作,指将两个二进制数的每一位都进行比较 ,如果两个相应的二进位有一个为 1 则此位为 1,否则为 0。在本例中,` 101 ` 与 ` 011 ` 进行按位或操作后的结果为 ` 111 ` ,对应十进制数为 ` 7 ` 。
211211
212212[ ^ 3 ] : 按位异或是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位不同则此位为 1,相同为 0。在本例中,` 101 ` 与 ` 011 ` 进行按位异或操作的结果为 ` 110 ` ,对应十进制数为 ` 6 ` 。
213213
Original file line number Diff line number Diff line change 2121
2222在这个程序中,我们根据用户猜测的数字来检查这一数字是否是我们所设置的。我们将变量 ` number ` 设为任何我们所希望的整数,例如 ` 23 ` 。然后,我们通过 ` input() ` 函数来获取用户的猜测数。所谓函数是一种可重复使用的程序。我们将在[ 下一章] ( ./10.functions.md#functions ) 详细讨论它。
2323
24- 我们为内置的 ` input ` 函数提供一串打印到屏幕上的字符串并等待用户的输入。一旦我们输入了某些内容并按下键盘上的 [ enter] 键,` input() ` 函数将以字符串的形式返回我们所输入的内容。然后我们通过 ` int ` 将这个字符串转换成一个整数并将其储存在变量 ` guess ` 中。实际上,` int ` 是一个类(Class),但你现在你所需要知道的就是你可以使用它将一串字符串转换成一个整数(假设这个字符串的文本中含有一个有效的整数)。
24+ 我们为内置的 ` input ` 函数提供一串打印到屏幕上的字符串并等待用户的输入。一旦我们输入了某些内容并按下键盘上的 ` enter ` 键,` input() ` 函数将以字符串的形式返回我们所输入的内容。然后我们通过 ` int ` 将这个字符串转换成一个整数并将其储存在变量 ` guess ` 中。实际上,` int ` 是一个类(Class),但你现在你所需要知道的就是你可以使用它将一串字符串转换成一个整数(假设这个字符串的文本中含有一个有效的整数)。
2525
2626接下来,我们将用户提供的猜测数与我们所选择的数字进行对比。如果它们相等,我们就打印一条成功信息。在这里要注意到我们使用缩进级别来告诉 Python 哪些语句分别属于哪个块。这便是为什么在 Python 中缩进如此重要。我希望你能够坚持“缩进一致”的原则,你能做到吧?
2727
@@ -42,7 +42,7 @@ if True:
4242
4343当 Python 完整执行了 ` if ` 语句及与其相关的 ` elif ` 和 ` else ` 子句后,它将会移动至包含 ` if ` 语句的代码块的下一句语句中。在本例中,也就是主代码块(程序开始执行的地方),其下一句语句就是 ` print('Done') ` 语句。在完成这些工作后,Python 会发现已行至程序末尾并宣告工作的完成。
4444
45- 尽管这是一个非常简单的程序,我也一直在其中指出你应该注意的事情。所有的这些都是简单易懂的 (对于那些具有 C/C++ 背景的人来说是相当简单易懂)。在开始时它们可能会吸引你的注意,但经过一些更丰富的操作后你会对此感到舒适 ,它们对于你来说将会成为“自然而然”的事情。
45+ 尽管这是一个非常简单的程序,我也一直在其中指出你应该注意的事情。所有的这些都可算是简单易懂 (对于那些具有 C/C++ 背景的人来说是相当简单易懂)。不过在开始时它们还是可能会不断吸引你的注意,不断地去在意它们。但经过一些更丰富的操作后你就会习惯它们及其中的逻辑 ,它们对于你来说将会成为“自然而然”的事情。
4646
4747> ** 针对 C/C++ 程序员的提示**
4848>
@@ -62,17 +62,17 @@ if True:
6262
6363** 它是如何工作的**
6464
65- 在这一程序中,我们依旧通过猜数游戏来演示,不过其优点在于能够允许用户持续猜测直至他猜中为止 ——而无需像我们在上一节中所做的那样,每次猜测都要重新运行程序。这种变化恰到好处地演示了 ` while ` 语句的作用。
65+ 在这一程序中,我们依旧通过猜数游戏来演示,不过新程序的优点在于能够允许用户持续猜测直至他猜中为止 ——而无需像我们在上一节中所做的那样,每次猜测都要重新运行程序。这种变化恰到好处地演示了 ` while ` 语句的作用。
6666
67- 首先我们将 ` input ` 与 ` if ` 语句移到 ` while ` 循环之中,并在 while 循环开始前将变量 ` running ` 设置为 ` True ` 。首先,我们检查变量 ` running ` 是否为 ` True ` ,之后再执行相应的 * while 块* 。在这一代码块被执行之后,将会重新对条件进行检查,在本例中也就是 ` running ` 变量。如果它依旧为 ` True ` ,我们将再次执行 while 块,否则我们将继续执行可选的 else 块,然后进入到下一个语句中。
67+ 首先我们将 ` input ` 与 ` if ` 语句移到 ` while ` 循环之中,并在 while 循环开始前将变量 ` running ` 设置为 ` True ` 。程序开始时,我们首先检查变量 ` running ` 是否为 ` True ` ,之后再执行相应的 * while 块* 。在这一代码块被执行之后,将会重新对条件进行检查,在本例中也就是 ` running ` 变量。如果它依旧为 ` True ` ,我们将再次执行 while 块,否则我们将继续执行可选的 else 块,然后进入到下一个语句中。
6868
6969` else ` 代码块在 ` while ` 循环的条件变为 ` False ` 时开始执行——这个开始的时机甚至可能是在第一次检查条件的时候。如果 ` while ` 循环中存在一个 ` else ` 代码块,它将一直被执行,除非你通过 ` break ` 语句来中断这一循环。
7070
7171` True ` 和 ` False ` 被称作布尔(Bollean)型,你可以将它们分别等价地视为 ` 1 ` 与 ` 0 ` 。
7272
7373> ** 针对 C/C++ 程序员的提示**
7474>
75- > 要记得, 你可以在 ` while ` 循环中使用 ` else ` 从句。
75+ > 你可以在 ` while ` 循环中使用 ` else ` 从句。
7676
7777
7878## ` for ` 循环
You can’t perform that action at this time.
0 commit comments