《跟老齐学Python:轻松入门》勘误和修订
2020-04-30
说明: 每次印刷,都要对本书进行部分修订,感谢读者对书中错误的指正。
2018年4月第5次印刷
勘误
第199页
- 位置:正文,第1段第1行
- 原文:在类Foo中,定义了一个属性lang=”python”,
- 修改为:在类Foo中,定义了一个属性lang=”Java”,
- 说明:将原文中的“python”,修改为“Java”
第241页
位置:代码段,倒数第一段
原文:
1
2
3
4
5
6
7
8
9
10
1110 x =
try:
1 / 0 x =
except Exception as e:
print(e)
finally:
print(e)
del x
...
integer division or modulo by zero
del x修改为:
1
2
3
4
5
6
7
8
9
1010 x =
try:
1 / 0 x =
except ZeroDivisionError as e:
print(e)
finally:
"del x") print(
...
division by zero
del x
第268页
位置:正文,倒数第1段第1行
原文:不要认为堆里面只能放数字,……,比较好理解。
修改说明::删除这句话。同时删除269页正数的6行代码(小标题4. heapreplace()之前的代码)。即下面的内容删除
1
2
3heap.heappush(h1, 'q')
……
[2, 3, 5, 4, 9, 6, 8, 9, 'q', 'w']
修订
2018年1月第4次印刷
勘误
第31页
- 位置:正文,倒数第四行
- 原文:严格地说,…,
这种类型用str表示, - 修改为:严格地说,…, 用str表示,
- 修改说明:删除“这种类型”
第31页
- 位置:正文,倒数第二行(即倒数第一自然段)
- 原文:字符串和前面讲过的数字一样,都是对象的类型,或者说都是Python数据类型。当然,表示方式还是有区别的。
- 修改说明:删除这一段内容
第32页
位置:正文,正数第一行
原文:无论使用单引号还是双引号,结果都是一样的,都是字符串。
修改为:
无论使用单引号还是双引号,都是字符串——引号一定要成对出现。仔细观察下面的操作,同样的250,有很大不同。
第32页
- 位置:正文,正数第二段第一行
- 原文:
仔细观察,同样是250,一个没有放在引号里面,… - 修改为:250,一个没有放在引号里面,…
第41页
- 位置:正文,倒数第三行
- 原文:字符串是一种序列,所有序列都有如下基本操作,
这是序列共有的操作。 - 修改为:字符串是一种序列,所有序列都有如下基本操作,下面的内容可以理解为以字符串为例研习序列的操作。
第79页
- 位置:正文,正数第五行
- 原文:
用这样的方法可以向一个字典类型的对象中增加“键值对”,也可以说是增加数值 - 修改说明:删除这一行,即这一自然段。
第79页
位置:正文,正数第六行
原文:那么,增加了值之后,字典还是原来的
字典吗?要同样探讨一下字典是否能够原地修改(列表可以,列表是可变的;字符串和元组都不行,它们是不可变的)。修改为:
那么,增加了值之后,字典还是原来的对象吗?
已经学习过列表,它是一种可变对象,能实现原地修改。刚才的操作,似乎也在说明字典亦然。
第79页
- 位置:正文,正数第八行
- 原文:
实验表明,字典可以原地修改,即它是可变的。 - 修改为:操作证实,字典可以原地修改,它是可变对象。
第79页
- 位置:正文,正数第十行
- 原文:利用
元组建构字典, - 修改为:利用dict()函数建构字典,
第126页
- 位置:代码,倒数第一段
- 原文:
1 | while 年龄大约60岁: ————>当年龄大约60岁的时候 |
- 修改为:
1 | while 年龄大约60岁: ————>当年龄大约60岁的时候 |
- 修改说明:“退休”相对最左边缩进四个英文半角的空格。
第148页
位置:代码,倒数第一段,第二行
原文:
1
2def 函数名(参数1, 参数2, ..., 参数n):
函数体(语句块)修改为:
1 | def 函数名(参数1, 参数2, …,参数n): |
- 修改说明:此行相对最左缩进4个英文半角的空格。
第150页
位置:正文,倒数第二行
原文:3.1.4 调用函数
修改说明:此标题的字号与3.1.3的标题字号一样大。现在字号偏小。
第189页
位置:正文,正数第五段
原文:在本书中,…,它也是对象。
凡是对象,都具有属性和方法。而属性是可以修改或者增加、删除的。既然如此,对刚才的类A或者类Girl,都可以对目前其有的属性进行修改,也可以增加新的属性。修改为:
在本书中,…,它也是对象。请回忆以前学习过的知识,不论字符串、列表、函数,都是对象,用dir()函数都可以查看它们的属性和方法。“类”——作为一个对象——当然也不例外。
1
2>>>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”部分的代码操作。
第189页
位置:正文,正数第六段
原文:
对类A增加了一个新的属性,并且赋给了值,然后删除一个已有属性。修改为:
对类A增加了一个属性,若用dir(A)查看,一定也能看到它,读者不妨试试。
删除类的属性,就是用del。
修改说明:删除原文的内容(该自然段),替换为“修改为”中的两个自然段的内容。
第189页
位置:正文,倒数第三段
原文:也可以修改当前已有的类属性的值。
修改为:
读者如果使用dir(A)再次查看属性,会发现,经过上述操作之后就只有属性y了,属性x已经不见了。
也可以修改当前已有类属性的值。
修改说明:在原文所示自然段前面增加一个自然段,内容在“修改为”中标识出了。
第189页
位置:正文,倒数第二段
原文:breast是
我们在类Girl中自己定义的属性,其实在一个类建立的同时,Python也让这个类具有了一些默认的属性。可以用我们熟知的dir()来查看类的所有属性(也包括方法)。修改为:breast是在类Girl中定义的属性,类Girl与类A一样,是类,也是对象,所以dir()同样应用。
第190页
位置:正文,正数第二段
原文:下面列出了类的 … 一一查看。
修改为:下面列出了类的 … 一一查看(C表示类名称,即类对象)。
修改说明:在本段后面增加“修改为”所标识的内容。
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
关注微信公众号,读文章、听课程,提升技能