2011-10-14 25 views
2

我刚刚注意到Python中不允许使用0填充,我想知道为什么选择这个选项?为什么Python中不允许使用0填充?

例如:

a = 9 

确实

是如何形成的

a = 09 

不起作用?

非常感谢您的回答!

+1

可能的[Python:Invalid Token]重复(http://stackoverflow.com/questions/336181/python-invalid-token) – geoffspear

回答

8

与许多其他语言一样,Python将以0开头的数字视为octal表示法。 09作为八进制无效

请参阅chapter 2.4.4在Python语言参考中。

+4

也就是说,在Python 3中,八进制的nubers前面是0o而不是0 。 – glglgl

+0

谢谢!我怀疑在与同事聊天时,在提出这个问题之前完全忘记检查:/ – ixM

2

这是因为以0开头的数字是八进制数字,八进制数字从0到7!

a = 07被完全接受,作为一个八进制;所以a = 061会导致a包含49

3

要展开什么@nos说:

>>> a = 01 
>>> a 
1 
>>> a = 07 
>>> a 
7 
>>> a = 010 
>>> a 
8 
>>> a = 08 
    File "<stdin>", line 1 
    a = 08 
     ^
SyntaxError: invalid token 

所以,a = 010是八进制10,这是十进制的8八只知道数字0到7。使这就是为什么这是不可能的。

相关问题