python from __future__ import division
阿新 • • 發佈:2018-12-17
python from __future__ import division
之前一直很困惑,為什麼這個模組叫future呢,難道有什麼特殊功能能夠讓人們想到未來嗎,最近才恍然大悟。
python的更新和前進是由社群進行推動的,而且是免費開源的,不受大型商業公司的控制,所以比較激進的想法能夠很快的用到python新版本的更新和優化中,這就導致不相容的情況時有發生,python開發者們為了使人們能夠順利的過渡到新版本,特意提供了__future__模組,讓人們能夠在舊的版本中測試新版本的一些特性。
__future__模組中的division功能提供了精確除法
在python2.x中對於除法有兩種情況,如果是整數相除,結果仍是整數,餘數會被去掉,這種除法被稱為截斷除法。
>>> 5/3
1
這裡注意,截斷除法不是四捨五入,而是直接把小數部分去掉。
如果要作精確除法,必須把其中的一個數變為浮點數:
>>> 5.0/3
1.6666666666666667
而在python3.x中,所有的除法都是精確除法,如果要使用截斷除法用“//”表示即可:
>>> 5/3 1.6666666666666667 >>> 5.0/3 1.6666666666666667 >>> 5//3 1
如果在python2.x中想像python3.x中一樣使用精確除法和截斷除法,就可以使用__future__模組中的division方法來實現。
>>> from __future__ import division;
>>> 5/3
1.6666666666666667
>>> 5//3
1