Python3: 00 + 00 == 00 работает, но 01 + 01 == 02 не работает

Я нашел это в Python3:

>>> 00 + 00 == 00
True

В то время как:

>>> 01 + 01 == 02
    File "<input>", line 1
01 + 01 == 02
 ^
SyntaxError: invalid token

Почему первый пример работает, а второй не работает? Разве не должно быть лучше, если оба провалились или оба сработали?

1 ответ

Из целочисленных литералов:

Обратите внимание, что начальные нули в ненулевом десятичном числе не допускаются. Это для устранения неоднозначности с восьмеричными литералами в стиле C, которые Python использовал до версии 3.0.

Вы можете прочитать лексические определения, чтобы понять правило для анализа целочисленных литералов.

Другие вопросы по тегам