Python 似乎能够接受除 08 或 09 以外的任何数字的前导零。例如,
a = 04
在口译员中工作,但
a = 08
返回
SyntaxError: invalid token
我在 OSX 上使用 python 2.7.3,其他人已经能够复制错误。是什么赋予了?
Python 似乎能够接受除 08 或 09 以外的任何数字的前导零。例如,
a = 04
在口译员中工作,但
a = 08
返回
SyntaxError: invalid token
我在 OSX 上使用 python 2.7.3,其他人已经能够复制错误。是什么赋予了?
其中带前导零的数字被解释为八进制,其中数字8
和9
不存在。
在 Python 3 中更糟糕的是,无论您使用哪个数字,前导零都是语法错误。请参阅“新八进制文字”下的 Python 3.0 中的新增功能。还有PEP 3127。
当您以 0 开头的数字时,Python 将其视为八进制。所以虽然是的,八进制 04 等于十进制 04,但八进制 08 甚至不存在(因为八进制数字只能在 [0,7] 范围内)。
在这里找到:Python:无效的令牌