微信公眾號(hào):軟測(cè)小生 ruancexiaosheng
Python中除法有兩種運(yùn)算符:’/’和’//’;有三種類型的除法:傳統(tǒng)除法、Floor除法和真除法。
X / Y類型:
在Python2.6或者之前,這個(gè)操作對(duì)于整數(shù)運(yùn)算會(huì)省去小數(shù)部分,而對(duì)于浮點(diǎn)數(shù)運(yùn)算會(huì)保持小數(shù)部分;在Python3.0中變成真除法(無(wú)論任何類型都會(huì)保持小數(shù)部分,即使整除也會(huì)表示為浮點(diǎn)數(shù)形式)。
示例代碼:
>>>3//2
1
>>>3//2.0
1.0
>>>4//2
2
>>>4//2.0
2.0
Python 3.4版本中結(jié)果:
>>>3/2
1.5
>>>3/2.0
1.5
>>>4/2
2.0
>>>4/2.0
2.0
X // Y 類型:
Floor除法:在Python 2.2中新增的操作,在Python2.6和Python3.0中均能使用,這個(gè)操作不考慮操作對(duì)象的類型,總是省略小數(shù)部分,剩下最小的能整除的整數(shù)部分。
示例代碼:
Python 2.7版本中結(jié)果:
>>>3//2
1
>>>3//2.0
1.0
>>>4//2
2
>>>4//2.0
2.0
Python 3.4版本中結(jié)果(與2.7版本一樣):
>>>3//2
1
>>>3//2.0
1.0
>>>4//2
2
>>>4//2.0
2.0
概括來(lái)講:
在Python 2.6中,’/’執(zhí)行傳統(tǒng)除法,如果操作數(shù)都是整數(shù)的話,執(zhí)行截?cái)嗟恼麛?shù)除法(即對(duì)于結(jié)果只保留整數(shù)部分),否則,執(zhí)行浮點(diǎn)除法(保留余數(shù));’//’執(zhí)行Floor除法,與Python3.0一樣,對(duì)于整數(shù)執(zhí)行截?cái)喑ǎ↑c(diǎn)數(shù)執(zhí)行浮點(diǎn)除法。
在Python 3.0中,’/’總是執(zhí)行真除法,不管操作數(shù)的類型,都會(huì)返回包含任何余數(shù)的浮點(diǎn)結(jié)果;’//’執(zhí)行Floor除法,截除掉余數(shù)并且針對(duì)整數(shù)操作數(shù)返回一個(gè)整數(shù),如果有任何一個(gè)操作數(shù)是浮點(diǎn)數(shù),則返回一個(gè)浮點(diǎn)數(shù)。
補(bǔ)充:
Floor除法:效果等同于math模塊中的floor函數(shù):
math.floor(x) :返回不大于x的整數(shù)
所以當(dāng)運(yùn)算數(shù)是負(fù)數(shù)時(shí):結(jié)果會(huì)向下取整。
>>>5//3#1.6666666666666667
1
>>>-5//3
-2
>>>
與floor()函數(shù)類似的還有很多,比如trunc()函數(shù):
>>>importmath
>>>math.trunc(-1.6)
-1
>>>math.trunc(1.6)
1
#參考justforuse CSDN#
http://blog.csdn.net/u014291497/article/details/50984626