我遇到了以下问题:
如您所料:
>>> [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