Python中除法有兩種運算符:'/'和'//';有三種類型的除法:傳統除法、Floor除法和真除法。
X / Y類型:
在Python2.6或者之前,這個操作對于整數運算會省去小數部分,而對于浮點數運算會保持小數部分;在Python3.0中變成真除法(無論任何類型都會保持小數部分,即使整除也會表示為浮點數形式)。
示例代碼:
Python 2.7版本中結果:
>>> 3/21>>> 3/2.01.5>>> 4/22>>> 4/2.02.0
Python 3.4版本中結果:
>>> 3/21.5>>> 3/2.01.5>>> 4/22.0>>> 4/2.02.0
X // Y 類型:
Floor除法:在Python 2.2中新增的操作,在Python2.6和Python3.0中均能使用,這個操作不考慮操作對象的類型,總是省略小數部分,剩下最小的能整除的整數部分。
示例代碼:
Python 2.7版本中結果:
>>> 3//21>>> 3//2.01.0>>> 4//22>>> 4//2.02.0
Python 3.4版本中結果(與2.7版本一樣):
概括
>>> 3//21>>> 3//2.01.0>>> 4//22>>> 4//2.02.0
來講:
• 在Python 2.6中,'/'執行傳統除法,如果操作數都是整數的話,執行截斷的整數除法(即對于結果只保留整數部分),否則,執行浮點除法(保留余數);'//'執行Floor除法,與Python3.0一樣,對于整數執行截斷除法,浮點數執行浮點除法。
• 在Python 3.0中,'/'總是執行真除法,不管操作數的類型,都會返回包含任何余數的浮點結果;'//'執行Floor除法,截除掉余數并且針對整數操作數返回一個整數,如果有任何一個操作數是浮點數,則返回一個浮點數。
-------------------------------------------------
補充:
Floor除法:效果等同于math模塊中的floor函數:
math.floor(x) :返回不大于x的整數
所以當運算數是負數時:結果會向下取整。
>>> 5//3 #1.66666666666666671>>> -5//3-2>>>
與floor()函數類似的還有很多,比如trunc()函數:
>>> import math>>> math.trunc(-1.6)-1>>> math.trunc(1.6)1
以上這篇詳談Python2.6和Python3.0中對除法操作的異同就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答