python中的float除法和整除法

從python2.2開始,便有兩種除法運算符:"/"、"http://"。兩者最大區(qū)別在:

  1. python2.2前的版本和python2.2以后3.0以前的版本的默認情況下,"/"所做的除法是以一種兩個數(shù)或者多個數(shù)出現(xiàn)一個浮點數(shù)結(jié)果就以浮點數(shù)的形式表示,即float除法
  2. "http://"所做的除法則不相同,"http://"不管兩者出現(xiàn)任何數(shù),都以整除結(jié)果為準,不對小數(shù)部分進行處理,直接拋棄,也就是整除法

以下是筆者在編譯器測試的數(shù)據(jù),測試的版本是python2.7

關(guān)于"/":

>>> 3/2
1
>>> 3/2.0
1.5
>>> 3.0/2
1.5
>>> 10/3.0
3.3333333333333335

由以上的例子我們可得出,只要除數(shù)中有一個數(shù)是浮點數(shù),那么得到的結(jié)果也是浮點數(shù)

以下是關(guān)于"http://":

>>> 3//2
1
>>> 3//2.0
1.0
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0

由以上的例子,我們可以看出,兩個整型相除,得到的還是整型,但是。如果一個浮點數(shù)除以一個非浮點數(shù)得到的還會是一個浮點數(shù),但是,計算的結(jié)果卻是忽略小數(shù)部分,運算的結(jié)果類似兩個整型相除,但是得到一個浮點數(shù)。另外"http://"對于兩個浮點數(shù)也是不例外的。

如何讓"/"和"http://"進行分工

在默認情況下,這兩種運算符有很大的重疊地方,比如,當兩個數(shù)都是整數(shù)的時候,兩者的運算結(jié)果是沒有區(qū)別的。如果想在python中讓這兩種有一個明確的分工。即"/"可以用于float除法,"http://"用于整除法,我們可以在程序開始的時候做以下聲明:

from __future__ import division

聲明后測試的結(jié)果(以下測試的版本是python2.7)

>>> from __future__ import division
>>> 3/2
1.5
>>> 3.0/2
1.5
>>> 3/2.0
1.5
>>> 3.0/2.0
1.5
>>> 3//2
1
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0
>>> 3//2.0
1.0
>>> -11/2
-5.5

以上,我們可以知道,做這個聲明以后,"/"進行的將是float除法而不是整除法。

還需要注意的是,在pyhton3中,"/"表示的就是float除,不需要再引入模塊,就算分子分母都是int,返回的也將是浮點數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容