Если Java / Python чувствителен к регистру с его переменными, то с плавающей запятой с экспоненциальными значениями нет, почему так - PullRequest
0 голосов
/ 24 января 2019

Переменные в языках Python (или Java) чувствительны к регистру.Сказав это,

Когда я печатаю

>>> a=3.14159
>>> b=999999999999999999999
>>> print(a*b)
3.14159e+21

, я вижу, что значение 'e +' (экспоненциальное) находится в нижнем регистре, где есть Если я использую результат 'E +' (Верхний регистр), затем не вижу никаких ошибок / неожиданных результатов .?

Примечание: я искал пару ссылок, чтобы найти ответы, где я обнаружил, что эти языки программирования написаны для поддержки ОС на основе Unix, однако, в этой экспонентеВ этом сценарии ОС UNIX поддерживает case-insensitive.?

Интересно узнать, предназначены ли эти программы для понимания ОС с помощью интерпретатора, тогда не интерпретируют ли эти интерпретаторы проблему чувствительности во всех местах (или где бы то ни было?)применимо)

1 Ответ

0 голосов
/ 24 января 2019

Java и Python чувствительны к регистру около идентификаторов , то есть имен методов, имен переменных, имен классов и т. Д.

3.14159e+21 не является идентификатором, поэтому правило «идентификаторы чувствительны к регистру» не применяется. Это литерал с плавающей точкой.

В разделе спецификации языка Java 3.10.5 Литералы с плавающей точкой указан синтаксис для литерала с плавающей точкой:

FloatingPointLiteral:
DecimalFloatingPointLiteral 
HexadecimalFloatingPointLiteral

DecimalFloatingPointLiteral:
Digits . [Digits] [ExponentPart] [FloatTypeSuffix] Digits [ExponentPart] [FloatTypeSuffix] 
Digits ExponentPart [FloatTypeSuffix] 
Digits [ExponentPart] FloatTypeSuffix

ExponentPart:
ExponentIndicator SignedInteger

ExponentIndicator: <---- Look at this part!
(one of) 
e E

SignedInteger:
[Sign] Digits

Sign:
(one of) 
+ -

FloatTypeSuffix:
(one of) 
f F d D

Видите этот блок?

ExponentIndicator:
(one of) 
e E

Вот что делает литералы с плавающей запятой "нечувствительными к регистру".

Почему они спроектировали это так? Вы должны спросить их о реальном ответе. Я предполагаю, что оба формата (с 'e' или 'E') уже были широко приняты в то время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...