【问题标题】:Python3: 00 + 00 == 00 works, but 01 + 01 == 02 Fails [duplicate]Python3:00 + 00 == 00 有效,但 01 + 01 == 02 失败 [重复]
【发布时间】:2018-02-04 16:03:21
【问题描述】:

我发现,这在 Python3 中:

>>> 00 + 00 == 00
True

同时:

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

为什么第一个示例有效,而第二个示例失败?如果两者都失败或都有效,不是更好吗?

【问题讨论】:

  • 因为您可以在octhex 中使用前导零输入整数,例如0o71 == 0x39,所以01 - 它是八进制/十进制/十六进制形式?我不知道,explicit is better than implicit

标签: python python-3.x leading-zero


【解决方案1】:

来自Integer literals

请注意,不允许在非零十进制数中使用前导零。 这是为了消除 C 风格的八进制文字的歧义,Python 在 3.0 之前使用。

您可以阅读词法定义以了解解析整数文字的规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2011-05-07
    • 2020-07-17
    • 1970-01-01
    相关资源
    最近更新 更多