2 回答

TA貢獻1810條經驗 獲得超4個贊
通常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發布時,就沒有這種折中情況了,," / "就一定表示 浮點數除法,返回浮點結果;" // "表示整數除法。

TA貢獻1877條經驗 獲得超1個贊
我這里舉個例子就更加有助理解:
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進行測試。
添加回答
舉報