在 Python 中,为什么 04000 // 1000 return 2?
In Python, why does 04000 // 1000 return 2?
我正在尝试使用 floor division 后跟每个数字的模数将一个 5 位数字分成它的数字。
为什么 04000 // 1000 return 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
因为Python2中的八进制数是以0开头的,实际上是十进制的2048
>>> 04000
2048
Python 3 更改此行为以使用 0o
作为八进制的修饰符:
>>> 04000
File "<stdin>", line 1
04000
^
SyntaxError: invalid token
>>> 0o4000
2048
嗯,04000
是八进制 == 2048
(十进制)
04000 // 1000 ==
2048 // 1000 ==
2 # integer division
我正在尝试使用 floor division 后跟每个数字的模数将一个 5 位数字分成它的数字。 为什么 04000 // 1000 return 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
因为Python2中的八进制数是以0开头的,实际上是十进制的2048
>>> 04000
2048
Python 3 更改此行为以使用 0o
作为八进制的修饰符:
>>> 04000
File "<stdin>", line 1
04000
^
SyntaxError: invalid token
>>> 0o4000
2048
嗯,04000
是八进制 == 2048
(十进制)
04000 // 1000 ==
2048 // 1000 ==
2 # integer division