Python2与Python3中除法功能的异同

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/grey_csdn/article/details/76563143

       Python 2中的除法以及除法的取余功能跟C语言中的除法以及取余功能全都类似,作为C语言的程序员接受起来还是很简单的。但是Python 3中的除法默认改成了进行高精度的浮点计算,这样就有时候让人觉得有些不适应了。

       我个人觉得,既然是高一些的版本,Python3肯定是最后的大势所趋。因此自己的电脑上安装的只有Python 3。慢慢脱离了Python 2只用Python 3,最终写代码写习惯了回到Python 2的时候就遇到各种不适应了。关于除法,就是一个很好的佐证。

       总结一下Python 3中的除法功能。写如下代码:

m = 10

n = 3

q = m / n

r = m % n

print("q =",q)

print("r =",r)

       执行结果如下:

q =  3.3333333333333335

r =  1

       从上面的结果看出,其实除法运算实现的是浮点运算,而取余的功能还是与之前一致的。如果想要实现Python 2的除法效果,其实简单想想就有两个方法可以实现。具体如下:

>>>int(m/n)

3

>>> (m -m % n)/n

3.0

       从上面的操作记录来看,其实第二种方法也只是实现了一个小数点后面的数值为0的一个浮点运算而已。从等效结果来看,还是使用强制转换来的简单一些。

       其实,py2与py3的这个变化的最初目的我也有些没有弄明白,倒也没见的有什么特别方便的。不过,我倒是蛮喜欢的,因为数值的计算更加接近于计算器了。Py2也不见得比py3好用,只是它更适合C程序员的思维而已。获得等效py3的运算效果,py2可以从feature中引入同样的效果,也可以直接使用float进行强制转换。我更新换后者,这样看,一个需要float转换,一个需要int转换,两个到底谁更简单也不好说清楚。这更让我对其设计初衷感兴趣了,回头这部分倒是可以继续追查一下。

展开阅读全文

没有更多推荐了,返回首页