版次:2017年4月第1版

印次:2018年4月第5次印刷

1、199页,正文,第1段第1行

原文:在类Foo中,定义了一个属性lang="python",

修改为:在类Foo中,定义了一个属性lang="Java",

2、268页,正文,倒数第1段第1行

原文:不要认为堆里面只能放数字,……,比较好理解。

修改:删除这句话。同时删除269页正数的6行代码(小标题4. heapreplace()之前的代码)。即下面的内容删除
>>> heap.heappush(h1, 'q')

……

[2, 3, 5, 4, 9, 6, 8, 9, 'q', 'w']


版次:2017年4月第1版

印次:2018年1月第4次印刷

1、31页,正文,倒数第四行

原文:严格地说,..., 这种类型用str表示,

修改为:严格地说,..., 用str表示,

修改说明:删除“这种类型”

2、31页,正文,倒数第二行(即倒数第一自然段)

原文:字符串和前面讲过的数字一样,都是对象的类型,或者说都是Python数据类型。当然,表示方式还是有区别的。

修改说明:删除这一段内容

3、32页,正文,正数第一行

原文:无论使用单引号还是双引号,结果都是一样的,都是字符串

修改为:

无论使用单引号还是双引号,都是字符串——引号一定要成对出现。

仔细观察下面的操作,同样的250,有很大不同。

4、32页,正文,正数第二段第一行

原文:仔细观察,同样是250,一个没有放在引号里面,...

修改为:250,一个没有放在引号里面,...

5、41页,正文,倒数第三行

原文:字符串是一种序列,所有序列都有如下基本操作,这是序列共有的操作。

修改为:字符串是一种序列,所有序列都有如下基本操作,下面的内容可以理解为以字符串为例研习序列的操作。

6、79页,正文,正数第五行

原文:用这样的方法可以向一个字典类型的对象中增加“键值对”,也可以说是增加数值

修改说明:删除这一行,即这一自然段。

7、79页,正文,正数第六行

原文:那么,增加了值之后,字典还是原来的字典吗?要同样探讨一下字典是否能够原地修改(列表可以,列表是可变的;字符串和元组都不行,它们是不可变的)。

修改为:

那么,增加了值之后,字典还是原来的对象吗?

已经学习过列表,它是一种可变对象,能实现原地修改。刚才的操作,似乎也在说明字典亦然。

8、79页,正文,正数第八行

原文:实验表明,字典可以原地修改,它是可变

修改为:操作证实,字典可以原地修改,它是可变对象

8、79页,正文,正数第十行

原文:利用元组建构字典,

修改为:利用dict()函数建构字典,

9、126页,代码,倒数第一段

原文:

while 年龄大约60岁: -------->当年龄大约60岁的时候
退休          -------->范式符合上述条件就执行的动作     

修改为:

while 年龄大约60岁: -------->当年龄大约60岁的时候
    退休          -------->范式符合上述条件就执行的动作     

修改说明:“退休”相对最左边缩进四个英文半角的空格。

10、148页,代码,倒数第一段,第二行

原文:函数体(语句块)

修改为:

def 函数名(参数1, 参数2, ...,参数n):
    函数体(语句块)

修改说明:此行相对最左缩进4个英文半角的空格。

11、150页,正文,倒数第二行

原文:3.1.4 调用函数

修改说明:此标题的字号与3.1.3的标题字号一样大。现在字号偏小。

12、189页,正文,正数第五段

原文:在本书中,...,它也是对象。凡是对象,都具有属性和方法。而属性是可以修改或者增加、删除的。既然如此,对刚才的类A或者类Girl,都可以对目前其有的属性进行修改,也可以增加新的属性。

修改为:

在本书中,...,它也是对象。请回忆以前学习过的知识,不论字符串、列表、函数,都是对象,用dir()函数都可以查看它们的属性和方法。“类”——作为一个对象——当然也不例外。

>>> dir(A)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'x']

观察上述结果,类A这个对象的属性x赫然在其中。

对象的属性都可以进行修改、增加和删除操作,类A这个对象当然还是不例外的。

修改说明:上面修改之后内容中,增加了dir(A)的操作代码。操作代码显示之后增加两个自然段的内容。然后,后面接189页代码正数第二段中的">>> A.y =9"部分的代码操作。

13、189页,正文,正数第六段

原文:对类A增加了一个新的属性,并且赋给了值,然后删除一个已有属性。

修改为:

对类A增加了一个属性,若用dir(A)查看,一定也能看到它,读者不妨试试。

删除类的属性,就是用del。

修改说明:删除原文的内容(该自然段),替换为“修改为”中的两个自然段的内容。

14、189页,正文,倒数第三段

原文:也可以修改当前已有的类属性的值。

修改为:

读者如果使用dir(A)再次查看属性,会发现,经过上述操作之后就只有属性y了,属性x已经不见了。

也可以修改当前已有类属性的值。

修改说明:在原文所示自然段前面增加一个自然段,内容在“修改为”中标识出了。

15、189页,正文,倒数第二段

原文:breast是我们在类Girl中自己定义的属性,其实在一个类建立的同时,Python也让这个类具有了一些默认的属性。可以用我们熟知的dir()来查看类的所有属性(也包括方法)。

修改为:breast是在类Girl中定义的属性,类Girl与类A一样,是类,也是对象,所以dir()同样应用。

16、190页,正文,正数第二段

原文:下面列出了类的 ... 一一查看。

修改为:下面列出了类的 ... 一一查看(C表示类名称,即类对象)

修改说明:在本段后面增加“修改为”所标识的内容。