1. 程式人生 > >python from __future__ import division

python from __future__ import division

python    from __future__ import division

之前一直很困惑,為什麼這個模組叫future呢,難道有什麼特殊功能能夠讓人們想到未來嗎,最近才恍然大悟。

        python的更新和前進是由社群進行推動的,而且是免費開源的,不受大型商業公司的控制,所以比較激進的想法能夠很快的用到python新版本的更新和優化中,這就導致不相容的情況時有發生,python開發者們為了使人們能夠順利的過渡到新版本,特意提供了__future__模組,讓人們能夠在舊的版本中測試新版本的一些特性。 

     __future__模組中的division功能提供了精確除法

,下面通過python2.x與python3.x來展示關於除法一些規則上的不同。

在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