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中變成真除法(無論任何類型都會(huì)保持小數(shù)部分,即使整除也會(huì)表示為浮點(diǎn)數(shù)形式)。
示例代碼:
Python 2.7版本中結(jié)果:
>>> 3/2
1
>>> 3/2.0
1.5
>>> 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
來講:
? 在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ù):
>>> import math
>>> math.trunc(-1.6)
-1
>>> math.trunc(1.6)
1
以上這篇詳談Python2.6和Python3.0中對(duì)除法操作的異同就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

