2

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

a = 04

在口译员中工作,但

a = 08

返回

SyntaxError: invalid token

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

4

2 回答 2

11

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

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

于 2013-03-14T20:17:22.030 回答
2

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

在这里找到:Python:无效的令牌

于 2013-03-14T20:17:23.467 回答