I came across the following problem:

As you would expect:

```
>>> [01,02,03]
[1, 2, 3]

```

Adding superflous `0`'s to the front of an integer `N` results in the mathematical equivalent of the integer `0N`, i.e `N`.

However when I do:

```
>>> [030, 031, 031, 031, 030, 031, 031, 032, 031, 032]
[24, 25, 25, 25, 24, 25, 25, 26, 25, 26]

```

This notion is proved to be *completly* incorrect. I tried to figure out why this was the case by trying to check if `030` is an int: 

```
>>> type(030)
<type 'int'>

```

Then I thought so perhaps, `030` is being evaluted to `24` and then it's instead getting `type(24)`. So I thought looking to see what's happening with `dis` might help:

```
>>> 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>    

```

This didn't help clear up why this behaviour occurs. So, what is the reson behind this behaviour?

And as per the title:

```
>>> 030 == 24
True

```