我一开始是无意把这篇作为2020年的第一篇. 这篇其实是我在2019年本该发出的稿子. 之所以迟迟不发, 是因为我一直凑不齐三个...现在凑齐了.

言归标题. 这些bug是我工作后所犯下的, 它们平均每个耗费了我半个下午的时间去debug. 应该庆幸最终bug还是给我找出来了.

为了方便陈述, 我以习题的形式展开吧. 答案我就不公布了. 因为对于熟悉Python的人来说, 这些答案是显然的. 而对于不熟悉Python的, 上机跑一下吧.

bug 1

猜猜下面每个print的结果.

a = [[0]*2]*2
print(a)
a[0][0] = 1
print(a)

我曾经用过这种方法定义了一个由一大堆零构成的变量, 结果出bug了.

bug 2

猜猜下面每个print的结果.

import numpy as np
a = np.array([0])
print(a)
a[0] = .5
print(a)

这个错误略高级, 没注意真的很容易犯. 要消除也很简单.

bug 3

猜猜下面每个print的结果.

a = int(0.3/0.1)  # 浮点数转整数
print(a)

我觉得这个是数学成绩好的同学才会犯的错误...

标签: none

评论已关闭