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

 

你可能感兴趣的:(python基础,__future__,divison)