【问题标题】:Invalid Token when using Octal numbers使用八进制数时令牌无效
【发布时间】:2010-12-22 17:06:05
【问题描述】:

我是 python 的初学者,我试图在我的脚本中使用八进制数,但是当我尝试它时,它会返回错误:

>>> a = 010
SyntaxError: invalid token (<pyshell#0>, line 1)
>>> 01
SyntaxError: invalid token (<pyshell#1>, line 1)

我的代码有问题吗?我正在使用 Python3(并且正在阅读一本 Python 2.2 的书)

【问题讨论】:

  • 您的 Python 安装或您使用的 shell 可能有问题。在shell.appspot.com 尝试相同的操作,看看是否会遇到相同的错误。
  • @Gene:正如在别处解释的那样,在 Python3 中,八进制必须使用前缀 '0o' 编写,而不仅仅是 Python 2 中的 '0',现在会产生错误。 (叹息

标签: python syntax python-3.x octal


【解决方案1】:

试试0o10,可能是因为python 3,也可能是pyshell本身。

PEP 说,

现在必须指定八进制文字 以“0o”或“0O”开头,而不是 "0";

http://www.python.org/dev/peps/pep-3127/

【讨论】:

  • 我希望每种语言都要求八进制数;使用前导 0 是多么愚蠢。现在,如果我们能够获得对 0sNNN(六十进制)的支持并将 base-64 数字放入我们的代码中。
  • 想想魔法常数的可能性......不再被限制在0xdeadbeef等:o
  • @Rafael 我认为您的意思是“0o”,而不是“Oo”:)
  • 有什么方法可以同时在 Py3 和 Py2.7 中使用吗?
  • 是的。使用 Python3 语法适用于 Python2 和 Python3。
猜你喜欢
  • 2012-06-25
  • 1970-01-01
  • 1970-01-01
  • 2022-07-05
  • 2020-02-12
  • 2012-05-01
  • 2022-10-14
  • 2012-04-09
  • 2013-02-18
相关资源
最近更新 更多