您好,登錄后才能下訂單哦!
先給大家介紹下Python除法之傳統除法、Floor除法及真除法
python3.0
/總是執行真除法,不管操作數的類型,都返回浮點數結果(即使能整除,如4/2==2.0);
//執行Floor除法,會截斷余數直接返回一個整數,如果有任何一個操作數是浮點數則返回浮點數(如4//2==2,3//2==1.5, 4.0//2==2.0)
總之:在python3.0中,/為真除法,不會截斷,且結果無論能否整除都是浮點數;//為地板除法,會對除法的結果進行取整返回,至于返回的結果是否是浮點數取決于操作數中有無浮點數,如兩個操作數都是整數那么就直接返回一個取整后的整數,如果操作數中有浮點數則返回結果是浮點數。
python2.0
/表示傳統除法,如果兩個操作數都是整數的話執行截斷除法,否則執行浮點除法,//執行Floor除法,同3.0
注意
在3.0中,/的結果總是返回浮點數與操作數類型無關,而//的結果總是依賴于操作數的類型,如果有一個是浮點數結果就是浮點數
ps:下面看下Python3除法之真除法、截斷除法和下取整對比
概述
在Python3中,數學運算中的除法被分為兩種,分別是“真除法”,即無論任何類型相除的結果都會保留小數點,和我們實際的數學運算結果一致,而“截斷除法”,則是無論任何類型相除的結果都會省略結果的小數部分,剩下最小的能整除的整數部分。以下是兩種除法的基本形式:
# 真除法 X / Y # 截斷除法 X // Y
真除法
X = 8 Y = 2 Z = 3 print(X / Y) print(X / Z)
示例結果:
4.0
2.6666666666666665
真除法的結果表明不論操作數的類型其相除結果都返回一個浮點結果。
截斷除法
X = 8
Y = 2
Z = 3
S = -8
print(X // Y) print(X // Z) print(S // Y) print(S // Z)
示例結果:
4
2
-4
-3
從示例中我們可以看到,截斷除法并不是真的直接去掉小數點后面的數字,而是類似模塊 math 中的 floor 方法,即向下取整,且負值的取整方式也是這樣的。
import math math.floor(2.0) math.floor(2.6666666666666665) math.floor(-2.0) math.floor(-2.6666666666666665)
示例結果:
2
2
-2
-3
同樣的模塊 math 中的 ceil 方法可以實現浮點數的上取整。
import math print(math.ceil(2.0)) print(math.ceil(2.6666666666666665)) print(math.ceil(-2.0)) print(math.ceil(-2.6666666666666665))
2
3
-2
-2
總結
以上所述是小編給大家介紹的Python除法之傳統除法、Floor除法及真除法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。