Python的几个高级bug
我一开始是无意把这篇作为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)
我觉得这个是数学成绩好的同学才会犯的错误...
评论已关闭