6
6
7
7
> 协议:[ CC BY-NC-SA 4.0] ( http://creativecommons.org/licenses/by-nc-sa/4.0/ )
8
8
9
- 在第一章中,我们专注于计算过程,以及程序设计中函数的作用。我们看到了如何使用原始数据(数值)和原始操作(算术运算),如何通过组合和控制来形式复合函数 ,以及如何通过给予过程名称来创建函数抽象。我们也看到了高阶函数通过操作通用计算方法来提升语言的威力。这是编程的本质。
9
+ 在第一章中,我们专注于计算过程,以及程序设计中函数的作用。我们看到了如何使用原始数据(数值)和原始操作(算术运算),如何通过组合和控制来形成复合函数 ,以及如何通过给予过程名称来创建函数抽象。我们也看到了高阶函数通过操作通用计算方法来提升语言的威力。这是编程的本质。
10
10
11
- 这一章会专注于数据。数据允许我们通过使用已经获得的计算工具,表示和操作与世界有关的信息。脱离数据结构的编程可能会满足于探索数学特性,但是真实世界的情况,比如文档、关系、城市和气候模式,都拥有复杂的结构,它最好使用符合数据类型来表现 。归功于互联网的高速发展,关于世界的大量结构信息可以免费从网上获得。
11
+ 这一章会专注于数据。数据允许我们通过使用已经获得的计算工具,表示和操作与世界有关的信息。脱离数据结构的编程可能会满足于探索数学特性,但是真实世界的情况,比如文档、关系、城市和气候模式,都拥有复杂的结构,它最好使用复合数据类型来表现 。归功于互联网的高速发展,关于世界的大量结构信息可以免费从网上获得。
12
12
13
13
## 2.1.1 对象隐喻
14
14
15
15
在这门课的开始,我们区分了函数和数据:函数执行操作,而数据被操作。当我们在数据中包含函数值时,我们承认数据也拥有行为。函数可以像数据一样被操作,但是也可以被调用来执行计算。
16
16
17
- 在这门课中,对象作为我们对数据值的核心编程隐喻,它同样拥有行为。对象表示信息,但是同时和它们所表示的抽象概念行为一致。对象如何和其它对象交互的逻辑,和编码对象值的信息绑定在一起。在打印对象时,它直到如何以字母和数字把自己拼写出来 。如果一个对象由几部分组成,它知道如何按照要求展示这些部分。对象即是信息也是过程 ,它们绑定在一起来展示复杂事物的属性、交互和行为。
17
+ 在这门课中,对象作为我们对数据值的核心编程隐喻,它同样拥有行为。对象表示信息,但是同时和它们所表示的抽象概念行为一致。对象如何和其它对象交互的逻辑,和编码对象值的信息绑定在一起。在打印对象时,它知道如何以字母和数字把自己拼写出来 。如果一个对象由几部分组成,它知道如何按照要求展示这些部分。对象既是信息也是过程 ,它们绑定在一起来展示复杂事物的属性、交互和行为。
18
18
19
19
Python 中所实现的对象隐喻具有特定的对象语法和相关的术语,我们会使用示例来介绍。日期(` date ` )就是一种简单对象。
20
20
@@ -51,14 +51,14 @@ Python 中所实现的对象隐喻具有特定的对象语法和相关的术语
51
51
2011
52
52
```
53
53
54
- 对象也拥有方法,它是值为函数的属性。在隐喻上,对象“知道”如何执行这些方法。方法从它们的参数和对象中计算出它们的结果。例如,` today ` 的` strftime ` 方法接受一个指定如何展示日期的参数(例如` %A ` 表示星期中天应该以全称拼写 )。
54
+ 对象也拥有方法,它是值为函数的属性。在隐喻上,对象“知道”如何执行这些方法。方法从它们的参数和对象中计算出它们的结果。例如,` today ` 的` strftime ` 方法接受一个指定如何展示日期的参数(例如` %A ` 表示星期几应该以全称拼写 )。
55
55
56
56
``` py
57
57
>> > today.strftime(' %A, %B %d ' )
58
58
' Monday, September 12'
59
59
```
60
60
61
- 计算` strftime ` 的返回值需要两个输入:描述输出格式的字符串,以及绑定到` today ` 的日期信息。这个方法使用日期特定的逻辑来产生结果。我们从不会说 2011 年九月十二日是星期一,但是知道一个人工作日的日期的一部分 。通过绑定行为和信息,Python 对象提供了可靠、独立的日期抽象。
61
+ 计算` strftime ` 的返回值需要两个输入:描述输出格式的字符串,以及绑定到` today ` 的日期信息。这个方法使用日期特定的逻辑来产生结果。我们从不会说 2011 年九月十二日是星期一,但是知道一个人的工作日是日期的一部分 。通过绑定行为和信息,Python 对象提供了可靠、独立的日期抽象。
62
62
63
63
点运算符在 Python 中提供了另一种组合表达式。点运算符拥有定义好的求值过程。但是,点运算符如何求值的精确解释,要等到我们引入面向对象编程的完整范式,在几节之后。
64
64
@@ -73,7 +73,7 @@ Python 中每个对象都拥有一个类型。`type`函数可以让我们查看
73
73
< class ' datetime.date' >
74
74
```
75
75
76
- 目前为止,我们学过的唯一一种对象就是数值 、函数、布尔值和现在的日期。我们也碰到了集合和字符串,我们需要更深入地学习它们 。有许多其它的对象类型 -- 声音、图像、位置、数据连接等等 -- 它们的多数可以通过组合和抽象的手段来定义,我们在这一章会研究它们。Python 只有一小部分内建于语言的原始数据类型 。
76
+ 目前为止,我们学过的对象类型只有数值 、函数、布尔值和现在的日期。我们也碰到了集合和字符串,但是需要更深入地学习它们 。有许多其它的对象类型 -- 声音、图像、位置、数据连接等等 -- 它们的多数可以通过组合和抽象的手段来定义,我们在这一章会研究它们。Python 只有一小部分内建于语言的原始或原生数据类型 。
77
77
78
78
原始数据类型具有以下特性:
79
79
@@ -100,4 +100,4 @@ Python 中每个对象都拥有一个类型。`type`函数可以让我们查看
100
100
101
101
名称` float ` 来源于实数在 Python 中表示的方式:“浮点”表示。虽然数值表示的细节不是这门课的话题,一些` int ` 和` float ` 对象的高层差异仍然很重要。特别是,` int ` 对象只能表示整数,但是表示得更精确,不带有任何近似。另一方面,` float ` 对象可以表示很大范围内的分数,但是不能表示所有有理数。然而,浮点对象通常用于近似表示实数和有理数,舍入到某个有效数字的数值。
102
102
103
- ** 扩展阅读。** 下面的章节介绍了更多的 Python 原始数据类型,专注于它们在创建使用数据抽象中的作用 。Dive Into Python 3 中的[ 原始数据类型] ( http://diveintopython3.ep.io/native-datatypes.html ) 一章提供了所有 Python 数据类型的实用概览,以及如何高效使用它们,还包含了许多使用示例和实践提示。你现在并不需要阅读它,但是要考虑将它作为宝贵的参考。
103
+ ** 扩展阅读。** 下面的章节介绍了更多的 Python 原始数据类型,专注于它们在创建实用数据抽象中的作用 。Dive Into Python 3 中的[ 原始数据类型] ( http://diveintopython3.ep.io/native-datatypes.html ) 一章提供了所有 Python 数据类型的实用概览,以及如何高效使用它们,还包含了许多使用示例和实践提示。你现在并不需要阅读它,但是要考虑将它作为宝贵的参考。
0 commit comments