python(或Java)语言中的变量区分大小写。话虽如此,
当我打印时
>>> a=3.14159
>>> b=999999999999999999999
>>> print(a*b)
3.14159e+21
我可以看到"e+"(指数)值是小写的,如果我使用结果"E+"(大写),那么看不到任何错误/意外结果。?
注意:我已经搜索了几个链接来寻找答案,我发现这些编程语言是为支持基于 unix 的操作系统而编写的,但是,在这个指数级场景中,UNIX OS 支持不区分大小写。
有兴趣知道这些程序是否旨在通过解释器理解操作系统,那么这些解释器不是在所有地方(或适用的地方)自定义这些敏感性问题吗?
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")在当时已经被广泛接受。