Why Python don't accept 03 as a number?

Joe Pfeiffer pfeiffer at cs.nmsu.edu
Fri Dec 7 22:49:45 EST 2018


jfong at ms4.hinet.net writes:

> MRAB at 2018/12/8 UTC+8 AM10:04:51 wrote:
>> Before Python 3, a leading 0 in an integer literal would indicate an 
>> octal (base 8) number.
>
> So, the reason is historical.
>
>> The old form is now invalid in order to reduce the chance of bugs.
>
> I encounter this problem on trying to do something like this:
>     eval('03 + 00 + 15')
> It takes me some efforts to get rid of those leading zeros:-(
>
> Hope someday 03 can be accepted as a valid decimal number in Python 3.
>
> Thank you for explaining.
>
> --Jach

I'd say we *really* don't want that.  We'd have old C programmers (like
me) expecting 010 to mean 8, and getting really confused...


More information about the Python-list mailing list