歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

Python2和Python3中除法操作的不同點(diǎn)詳解

發(fā)布時間:2017-10-10 08:14  回復(fù):0  查看:4340   最后回復(fù):2017-10-10 08:14  
本文和大家分享的主要是python2 python3 中除法操作的一些區(qū)別,一起來看看吧,希望對大家 學(xué)習(xí)python有所幫助。
  Python 中除法有兩種運(yùn)算符: ’/’ ’//’ ;有三種類型的除法:傳統(tǒng)除法、 Floor 除法和真除法。
  X / Y 類型:
  在Python2.6 或者之前,這個操作對于整數(shù)運(yùn)算會省去小數(shù)部分,而對于浮點(diǎn)數(shù)運(yùn)算會保持小數(shù)部分;在 Python3.0 中變成真除法(無論任何類型都會保持小數(shù)部分,即使整除也會表示為浮點(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 中均能使用,這個操作不考慮操作對象的類型,總是省略小數(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ù)除法(即對于結(jié)果只保留整數(shù)部分),否則,執(zhí)行浮點(diǎn)除法(保留余數(shù)); ’//’ 執(zhí)行 Floor 除法,與 Python3.0 一樣,對于整數(shù)執(zhí)行截?cái)喑?,浮點(diǎn)數(shù)執(zhí)行浮點(diǎn)除法。
  在Python 3.0 中, ’/’ 總是執(zhí)行真除法,不管操作數(shù)的類型,都會返回包含任何余數(shù)的浮點(diǎn)結(jié)果; ’//’ 執(zhí)行 Floor 除法,截除掉余數(shù)并且針對整數(shù)操作數(shù)返回一個整數(shù),如果有任何一個操作數(shù)是浮點(diǎn)數(shù),則返回一個浮點(diǎn)數(shù)。
  補(bǔ)充:
   Floor除法  :效果等同于math 模塊中的 floor 函數(shù):
  math.floor(x)  :返回不大于 x 的整數(shù)
  所以當(dāng)運(yùn)算數(shù)是負(fù)數(shù)時:結(jié)果會向下取整。
  >>>5//3#1.6666666666666667
  1
  >>>-5//3
  -2
  >>>
  與floor() 函數(shù)類似的還有很多,比如  trunc()函數(shù) 
  >>>importmath
  >>>math.trunc(-1.6)
  -1
  >>>math.trunc(1.6)
  1
來源:簡書

您還未登錄,請先登錄

熱門帖子

最新帖子

?