Python - Числовые буквенные выражения - PullRequest
1 голос
/ 26 мая 2019

Может кто-нибудь помочь мне понять, почему Python делает следующее?

>>> 1,024
SyntaxError: invalid token

>>> 1,024.46
(1, 24.46)

1-й числовой литерал 1,024 возвращает ошибку SyntaxError, поскольку запятые никогда не используются в числовых литералах в Python.

Однако 2-й числовой литерал возвращает число 1 024,46 как два разных числа, даже если это одно число и оно не выдает ошибку.

Я пытаюсь понять, как Python воспринимает второе число и чем оно отличается от первого?

1 Ответ

4 голосов
/ 26 мая 2019

Python рассматривает два значения, разделенных запятыми, как это, как кортеж (отсюда и круглые скобки). Первой причиной является синтаксическая ошибка, а второй - не то, что для числа с плавающей запятой разрешено начинаться с 0, а для целого - нет. Таким образом, (1, 024) является синтаксической ошибкой, (1, 024.46) - нет, поскольку 024 не является допустимым целым числом, а 024.46 является допустимым значением с плавающей запятой.

...