<分区> 分区>
我遇到了以下问题:
如你所料:
>>> [01,02,03]
[1, 2, 3]
将多余的 0 添加到整数 N 的前面会导致整数 0N 的数学等价物,即 N.
但是当我这样做的时候:
>>> [030, 031, 031, 031, 030, 031, 031, 032, 031, 032]
[24, 25, 25, 25, 24, 25, 25, 26, 25, 26]
这个概念被证明是完全不正确的。我试图通过检查 030 是否为 int 来弄清楚为什么会这样:
>>> type(030)
<type 'int'>
然后我想也许是这样,030 被计算为 24 然后它变成了 type(24)。所以我想看看 dis 发生了什么可能会有所帮助:
>>> dis.dis('n=030')
0 JUMP_FORWARD 12349 (to 12352)
3 DELETE_SLICE+1
4 <48>
>>> dis.dis('n=30')
0 JUMP_FORWARD 13117 (to 13120)
3 <48>
这无助于弄清楚为什么会出现这种行为。那么,这种行为背后的原因是什么?
根据标题:
>>> 030 == 24
True
