为什么Python中不允许使用0填充?

时间:2011-10-14 12:51:01

标签: python

我刚刚注意到Python中不允许使用0-padding,我想知道为什么要做出这个选择?

例如:

a = 09

不起作用

a = 9

确实

怎么样?!

非常感谢您的回答!

3 个答案:

答案 0 :(得分:8)

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

请参阅python语言参考中的chapter 2.4.4

答案 1 :(得分: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.所以这就是为什么这是不可能的。

答案 2 :(得分:2)

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

完全接受a = 07作为八进制;因此a = 061会导致a包含49。