2 回答

TA貢獻(xiàn)1883條經(jīng)驗 獲得超3個贊
通常C/C++中,"/ " 算術(shù)運算符的計算結(jié)果是根據(jù)參與運算的兩邊的數(shù)據(jù)決定的,比如:
6 / 3 = 2 ; 6,3都是整數(shù),那么結(jié)果也就是整數(shù)2;
6.0 / 3.0 = 2.0 ; 6.0,3.0是浮點數(shù),那么結(jié)果也是浮點數(shù)2.0,跟精確的說,只要" / " 兩邊有一個數(shù)是浮點數(shù),那么結(jié)果就是浮點數(shù)。
在Python2.2版本以前也是這么規(guī)定的,但是,Python的設(shè)計者認(rèn)為這么做不符合Python簡單明了的特性,于是乎就在Python2.2以及以后的版本中增加了一個算術(shù)運算符" // "來表示整數(shù)除法,返回不大于結(jié)果的一個最大的整數(shù),而" / " 則單純的表示浮點數(shù)除法,但是,為了折中,所有2.X版本中,也是為了向后兼容,如果要使用" // ",就必須加上一條語句:
from __future__ import division
一看到這句," / "就表示 浮點數(shù)除法,返回浮點結(jié)果;" // "表示整數(shù)除法。
但是,預(yù)計在Python3.0發(fā)布時,就沒有這種折中情況了,," / "就一定表示 浮點數(shù)除法,返回浮點結(jié)果;" // "表示整數(shù)除法。

TA貢獻(xiàn)1784條經(jīng)驗 獲得超7個贊
我這里舉個例子就更加有助理解:
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 #輸出結(jié)果是:2.0 ,2.2
從上面兩個測試結(jié)果可看出來,在進(jìn)行整數(shù)運算時兩種運算符沒差;在進(jìn)行浮點運算時,// 取小數(shù)點前的值(但是其類型還是浮點型),/ 就是現(xiàn)實中帶小數(shù)的運算啦。動動手測試一下就能夠很好的理解了!
我是用python2.7進(jìn)行測試。
添加回答
舉報