[New-bugs-announce] [issue26490] Leading “0” allowed, only for decimal zero

Ben Finney report at bugs.python.org
Sat Mar 5 18:58:36 EST 2016


New submission from Ben Finney:

The language reference carves out a special case for decimal zero literals: they may have leading “0” digits. Non-zero decimal literals may not. This is apparently deliberate:

    Note that leading zeros in a non-zero decimal number are not allowed. This is for disambiguation with C-style octal literals, which Python used before version 3.0.

    reference/lexical_analysis.html#integer-literals

But the expressed rationale (“for disambiguation with C-style octal literals”) does not explain making decimal zero special compared with non-zero.

Is there a good reason for this inconsistency::

    0000    # valid syntax for zero literal
    0003    # SyntaxError
    0123    # SyntaxError

To my reading, they should all cause SyntaxError. What is the rationale for the special case of the first one?

----------
components: Interpreter Core
messages: 261227
nosy: bignose
priority: normal
severity: normal
status: open
title: Leading “0” allowed, only for decimal zero
type: behavior
versions: Python 3.2, Python 3.3, Python 3.4, Python 3.5, Python 3.6

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue26490>
_______________________________________


More information about the New-bugs-announce mailing list