使用八进制数字时出现无效标记(Invalid Token)

59

我是Python的初学者,我正在尝试在我的脚本中使用一个八进制数字,但当我尝试时,它返回以下错误:

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

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


你的Python安装或使用的shell可能存在问题。请尝试在http://shell.appspot.com上进行相同操作,查看是否出现相同的错误。 - Gene Goykhman
1
@Gene:如其他地方所解释的那样,在Python3中,八进制必须以前缀“0o”写入,而不是像Python 2中一样只写“0”,否则会产生错误。(叹气 - Max
1个回答

84

尝试使用 0o10,可能是因为 Python 3 或 Pyshell 本身的原因。

PEP 表示:

现在必须使用 "0o" 或 "0O" 作为八进制字面量的前缀,而不是 "0";

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


15
我希望每种语言都要求八进制数使用这个规则;在前面加一个零太愚蠢了。现在如果我们能支持六十进制的0sNNN,并将64进制数放入我们的代码中就好了。 - Lawrence Dol
2
想象一下魔术常量的可能性......不再局限于0xdeadbeef等等。 :o - Andrew Keeton
1
@Rafael 我想你是指“0o”,而不是“Oo” :) - jchl
8
有没有一种方法适用于Py3和Py2.7两个版本? - Cerin
9
是的。使用Python3语法可以同时适用于Python2和Python3。 - Ben Elgar
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接