在Python中,为什么04000 // 1000返回2?

时间:2018-02-09 07:29:44

标签: python math floor-division

我试图将5位数字分成数字,使用地板分割,然后是每个数字的模数。 为什么04000 // 1000返回2?

>>> 04//1
4
>>> 040//10
3
>>> 0400//100
2
>>> 04000//1000
2
>>> 4//1
4
>>> 40//10
4
>>> 400//100
4
>>> 4000//1000
4

2 个答案:

答案 0 :(得分:3)

因为Python 2中的八进制数以0开头。实际上是2048十进制数。

>>> 04000
2048

Python 3将此行为更改为使用0o作为八进制的修饰符:

>>> 04000
  File "<stdin>", line 1
    04000
        ^
SyntaxError: invalid token
>>> 0o4000
2048

答案 1 :(得分:1)

好吧,Failed to create component 'XXX'. The error message follows: 'System.MissingMethodException: Contructor on type 'XXX' not found. 八进制 == 04000(十进制)

2048