通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如:
6 / 3 = 2 ; 6,3都是整数,那么结果也就是整数2;
6.0 / 3.0 = 2.0 ; 6.0,3.0是浮点数,那么结果也是浮点数2.0,跟精确的说,只要" / " 两边有一个数是浮点数,那么结果就是浮点数。
在Python2.2版本以前也是这么规定的,但是,Python的设计者认为这么做不符合Python简单明了的特性,于是乎就在Python2.2以及以后的版本中增加了一个算术运算符" // "来表示整数除法,返回不大于结果的一个最大的整数,而" / " 则单纯的表示浮点数除法,但是,为了折中,所有2.X版本中,也是为了向后兼容,如果要使用" // ",就必须加上一条语句:
from __future__ import division
一看到这句," / "就表示 浮点数除法,返回浮点结果;" // "表示整数除法。
但是,预计在Python3.0发布时,就没有这种折中情况了,," / "就一定表示 浮点数除法,返回浮点结果;" // "表示整数除法。
我这里举个例子就更加有助理解:
a=11; b=5;c=0;d=0
c=a//b;d=a/b
print c,d #两输出都是2
a=11.0;b=5.0;c=0.0;d=0.0
c=a//b;d=a/b
print c,d #输出结果是:2.0 ,2.2
从上面两个测试结果可看出来,在进行整数运算时两种运算符没差;在进行浮点运算时,// 取小数点前的值(但是其类型还是浮点型),/ 就是现实中带小数的运算啦。动动手测试一下就能够很好的理解了!
我是用python2.7进行测试。