Integers with leading zeroes

Steven D'Aprano steve at
Sun Jul 19 07:39:08 CEST 2015

In Python 2, integer literals with leading zeroes are treated as octal, so
09 is a syntax error and 010 is 8.

This is confusing to those not raised on C-style octal literals, so in
Python 3 leading zeroes are prohibited in int literals. Octal is instead
written using the prefix 0o, similar to hex 0x and binary 0b.

Consequently Python 3 makes both 09 and 010 a syntax error.

However there is one exception: zero itself is allowed any number of leading
zeroes, so 00000 is a legal way to write zero as a base-10 int literal.

Does anyone use that (mis)feature?


More information about the Python-list mailing list