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 <rep...@bugs.python.org>
<http://bugs.python.org/issue26490>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to