Python似乎能够接受除08或09之外的任何数字的前导零。例如,
a = 04
在翻译中工作,但
a = 08
返回
SyntaxError: invalid token
我在OSX上使用python 2.7.3,其他人已经能够复制错误。是什么给了什么?
答案 0 :(得分:11)
前导零的数字被解释为八进制,其中数字8
和9
不存在。
在Python 3中更糟糕,无论您使用哪个数字,前导零都是语法错误。请参阅“新八进制文字”下的What’s New In Python 3.0。还PEP 3127。
答案 1 :(得分:2)
当你用0开始一个数字时,Python将它视为八进制。所以虽然是,但是八进制04等于十进制04,但八进制08甚至不存在(因为八进制数字只能在[0,7]范围内)。
在此处找到:Python: Invalid Token