python中的前导零

时间:2013-03-14 20:15:46

标签: python python-2.7 syntax-error

Python似乎能够接受除08或09之外的任何数字的前导零。例如,

a = 04

在翻译中工作,但

a = 08

返回

SyntaxError: invalid token

我在OSX上使用python 2.7.3,其他人已经能够复制错误。是什么给了什么?

2 个答案:

答案 0 :(得分:11)

前导零的数字被解释为八进制,其中数字89不存在。

在Python 3中更糟糕,无论您使用哪个数字,前导零都是语法错误。请参阅“新八进制文字”下的What’s New In Python 3.0。还PEP 3127

答案 1 :(得分:2)

当你用0开始一个数字时,Python将它视为八进制。所以虽然是,但是八进制04等于十进制04,但八进制08甚至不存在(因为八进制数字只能在[0,7]范围内)。

在此处找到:Python: Invalid Token