在Python2中,除法的取值結果取整數
>>> 7/3 2
即一個整數(無小數部分的數)被另外一個整數除,計算結果的小數部分被截除了,只留下了整數部分。
在Python3中,除法/的結果包含小數
注意:無論除數和被除數是任何型別都會保持小數部分,即使整除也會表示為浮點數形式
例如:
>>> 7/3 2.3333333333333335 >>> 4/2 2.0
如果想實現Python2中的功能,得到相同的結果,只取整數需要使用//
例如:
>>> 7//3 2 >>> 4//2 2
在python2中需要實現與python3相同功能的除法,有兩種方法:
方法1. 匯入division模組
from __future__ import division >>> 7/3 2.3333333333333335 >>> 4/2 2.0
方法2: 用實數代替整數進行運算
實數即包含小數點的數, 實數在Python中被稱為浮點數(Float),只要參與運算的數字中有一個是浮點數,則為浮點數運算,運算結果亦為浮點數,也就不會截除小數部分
>>> 7/3.0 2.3333333333333335 >>> 7.0/3 2.3333333333333335 >>> 7.0/3.0 2.3333333333333335 >>>
總結:
開發中涉及到數值精度的問題,往往會導致意想不到的bug,所以大家要注意Python2和Python3在處理除法運算時的區別, 避免開發中遇到問題。