Python中除法有兩種運算符:'/'和'//';有三種類型的除法:傳統除法、Floor除法和真除法。
X / Y類型:
在Python2.6或者之前,這個操作對于整數運算會省去小數部分,而對于浮點數運算會保持小數部分;在Python3.0中變成真除法(無論任何類型都會保持小數部分,即使整除也會表示為浮點數形式)。
示例代碼:
Python 2.7版本中結果:
>>> 3/2 1 >>> 3/2.0 1.5 >>> 4/2 2 >>> 4/2.0 2.0
Python 3.4版本中結果:
>>> 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中均能使用,這個操作不考慮操作對象的類型,總是省略小數部分,剩下最小的能整除的整數部分。
示例代碼:
Python 2.7版本中結果:
>>> 3//2 1 >>> 3//2.0 1.0 >>> 4//2 2 >>> 4//2.0 2.0
Python 3.4版本中結果(與2.7版本一樣):
概括
>>> 3//2 1 >>> 3//2.0 1.0 >>> 4//2 2 >>> 4//2.0 2.0
來講:
? 在Python 2.6中 ,'/'執行傳統除法,如果操作數都是整數的話,執行截斷的整數除法(即對于結果只保留整數部分),否則,執行浮點除法(保留余數);'//'執行Floor除法,與Python3.0一樣,對于整數執行截斷除法,浮點數執行浮點除法。
? 在Python 3.0中 ,'/'總是執行真除法,不管操作數的類型,都會返回包含任何余數的浮點結果;'//'執行Floor除法,截除掉余數并且針對整數操作數返回一個整數,如果有任何一個操作數是浮點數,則返回一個浮點數。
-------------------------------------------------
補充:
Floor除法:效果等同于math模塊中的floor函數:
math.floor(x) :返回不大于x的整數
所以當運算數是負數時:結果會向下取整。
>>> 5//3 #1.6666666666666667 1 >>> -5//3 -2 >>>
與floor()函數類似的還有很多,比如trunc()函數:
>>> import math >>> math.trunc(-1.6) -1 >>> math.trunc(1.6) 1
以上這篇詳談Python2.6和Python3.0中對除法操作的異同就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
