Python 2有两个除法运算符:/
和//
。以下是输出:
========================================= RESTART: Shell =========================================
>>> for x in range(10):
for y in range(1, 10):
print x,'//',y,'=',x//y
print x,'/',y,'=',x/y
print
0 // 1 = 0
0 / 1 = 0
0 // 2 = 0
0 / 2 = 0
0 // 3 = 0
0 / 3 = 0
0 // 4 = 0
0 / 4 = 0
0 // 5 = 0
0 / 5 = 0
0 // 6 = 0
0 / 6 = 0
0 // 7 = 0
0 / 7 = 0
0 // 8 = 0
0 / 8 = 0
0 // 9 = 0
0 / 9 = 0
1 // 1 = 1
1 / 1 = 1
1 // 2 = 0
1 / 2 = 0
1 // 3 = 0
1 / 3 = 0
1 // 4 = 0
1 / 4 = 0
1 // 5 = 0
1 / 5 = 0
1 // 6 = 0
1 / 6 = 0
1 // 7 = 0
1 / 7 = 0
1 // 8 = 0
1 / 8 = 0
1 // 9 = 0
1 / 9 = 0
2 // 1 = 2
2 / 1 = 2
2 // 2 = 1
2 / 2 = 1
2 // 3 = 0
2 / 3 = 0
2 // 4 = 0
2 / 4 = 0
2 // 5 = 0
2 / 5 = 0
2 // 6 = 0
2 / 6 = 0
2 // 7 = 0
2 / 7 = 0
2 // 8 = 0
2 / 8 = 0
2 // 9 = 0
2 / 9 = 0
3 // 1 = 3
3 / 1 = 3
3 // 2 = 1
3 / 2 = 1
3 // 3 = 1
3 / 3 = 1
3 // 4 = 0
3 / 4 = 0
3 // 5 = 0
3 / 5 = 0
3 // 6 = 0
3 / 6 = 0
3 // 7 = 0
3 / 7 = 0
3 // 8 = 0
3 / 8 = 0
3 // 9 = 0
3 / 9 = 0
4 // 1 = 4
4 / 1 = 4
4 // 2 = 2
4 / 2 = 2
4 // 3 = 1
4 / 3 = 1
4 // 4 = 1
4 / 4 = 1
4 // 5 = 0
4 / 5 = 0
4 // 6 = 0
4 / 6 = 0
4 // 7 = 0
4 / 7 = 0
4 // 8 = 0
4 / 8 = 0
4 // 9 = 0
4 / 9 = 0
5 // 1 = 5
5 / 1 = 5
5 // 2 = 2
5 / 2 = 2
5 // 3 = 1
5 / 3 = 1
5 // 4 = 1
5 / 4 = 1
5 // 5 = 1
5 / 5 = 1
5 // 6 = 0
5 / 6 = 0
5 // 7 = 0
5 / 7 = 0
5 // 8 = 0
5 / 8 = 0
5 // 9 = 0
5 / 9 = 0
6 // 1 = 6
6 / 1 = 6
6 // 2 = 3
6 / 2 = 3
6 // 3 = 2
6 / 3 = 2
6 // 4 = 1
6 / 4 = 1
6 // 5 = 1
6 / 5 = 1
6 // 6 = 1
6 / 6 = 1
6 // 7 = 0
6 / 7 = 0
6 // 8 = 0
6 / 8 = 0
6 // 9 = 0
6 / 9 = 0
7 // 1 = 7
7 / 1 = 7
7 // 2 = 3
7 / 2 = 3
7 // 3 = 2
7 / 3 = 2
7 // 4 = 1
7 / 4 = 1
7 // 5 = 1
7 / 5 = 1
7 // 6 = 1
7 / 6 = 1
7 // 7 = 1
7 / 7 = 1
7 // 8 = 0
7 / 8 = 0
7 // 9 = 0
7 / 9 = 0
8 // 1 = 8
8 / 1 = 8
8 // 2 = 4
8 / 2 = 4
8 // 3 = 2
8 / 3 = 2
8 // 4 = 2
8 / 4 = 2
8 // 5 = 1
8 / 5 = 1
8 // 6 = 1
8 / 6 = 1
8 // 7 = 1
8 / 7 = 1
8 // 8 = 1
8 / 8 = 1
8 // 9 = 0
8 / 9 = 0
9 // 1 = 9
9 / 1 = 9
9 // 2 = 4
9 / 2 = 4
9 // 3 = 3
9 / 3 = 3
9 // 4 = 2
9 / 4 = 2
9 // 5 = 1
9 / 5 = 1
9 // 6 = 1
9 / 6 = 1
9 // 7 = 1
9 / 7 = 1
9 // 8 = 1
9 / 8 = 1
9 // 9 = 1
9 / 9 = 1
>>>
几乎总是证明a/b
等于a//b
。有没有任何情况它们不相等?如果没有,为什么Python 2会包含两个执行相同操作的运算符?
/
和//
完全相同。在Python 3.x中尝试相同的测试,并准备好惊喜。拥有两个运算符是为未来做准备的一种方式。 - Mark Ransomfrom __future__ import division
- Peter Wood//
除法运算符是由PEP 238 - 更改除法运算符引入的。要默认使用“未来”(Python 3)样式的除法,请在程序中使用__future__
导入,正如Peter Wood上面所评论的那样。 - Kevin J. Chase