【问题标题】:Why is 08 or 09 in Python invalid? [duplicate]为什么 Python 中的 08 或 09 无效? [复制]
【发布时间】:2014-12-12 23:23:24
【问题描述】:

在 Python 解释器中,08 和 09 似乎无效。示例:

>>> 01
1
>>> 02
2
>>> 03
3
>>> 04
4
>>> 05
5
>>> 06
6
>>> 07
7
>>> 08
  File "<stdin>", line 1
    08
     ^
SyntaxError: invalid token
>>> 09
  File "<stdin>", line 1
    09
     ^
SyntaxError: invalid token

如您所见,只有08 和09 似乎不起作用。这些是特殊值还是什么?

【问题讨论】:

  • 八进制表示法。也是关于 SO 的数百个问题的副本...请在提问之前进行一些努力搜索,我确实在谷歌上搜索了 python 08 并收到了来自 SO 的 multiple 相关结果。
  • 它们是八进制的。 stackoverflow.com/questions/11620151/…

标签: python python-2.7


【解决方案1】:

带有前导零的数字被解释为八进制文字。所以 8 和 9 在八进制中是无效的。只有数字 0 到 7 有效。

尝试翻译:

>>> 011
9
>>> 012
10
>>> 013
11

【讨论】:

    【解决方案2】:

    如果一个数字以0开头,则表示它是一个八进制数:

    >>> 010
    8
    

    【讨论】:

      【解决方案3】:

      在 Python(以及许多其他 C 源语言)中,前导 0(以及越来越多的前导 0O)表示数字是八进制,而不是十进制。详情请见https://docs.python.org/2/reference/lexical_analysis.html#integer-and-long-integer-literals。

      例如,对于踢球,请查看 010 的计算结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-04
        • 1970-01-01
        • 2017-01-26
        • 2011-10-17
        • 2011-09-18
        • 2018-02-17
        相关资源
        最近更新 更多