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转换,两个到底谁更简单也不好说清楚。这更让我对其设计初衷感兴趣了,回头这部分倒是可以继续追查一下。
---------------------
【转载】仅作分享,侵删
作者:grey_csdn
原文:https://blog.csdn.net/grey_csdn/article/details/76563143
|
|