-1

我正在尝试使用地板除法将 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
4

2 回答 2

3

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

>>> 04000
2048

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

>>> 04000
  File "<stdin>", line 1
    04000
        ^
SyntaxError: invalid token
>>> 0o4000
2048
于 2018-02-09T07:31:34.087 回答
1

好吧,04000八进制== 2048(十进制)

 04000 // 1000 == 
  2048 // 1000 == 
     2 # integer division
于 2018-02-09T07:31:39.690 回答