python 学习笔记之 算术运算符(除法)

时间:2022-01-23 17:22:58

Python 2.2版本之前,除法("/")运算符返回结果包含两种情况:整数和浮点数。操作因数的不同是影响返回结果的决定性因数。

以a、b为列,a、b均为整形,则结果返回为整形。如果a、b任意为浮点型,则返回结果为浮点型。

===========================
# python v2.7
>>> 3 / 2, 3.0 / 2, 3.0 / 2.0
(1, 1.5, 1.5)
===========================

在某些场合,我们可能会期待返回的结果类型为浮点型,但参与运算的a、b都为整形,这可能会带来错误,显然有精度上的损失。问题如何解决请参考:python 学习笔记之类型转换


Python2.2以后,引入地板除”(“//”)运算符,从数值上讲,它返回小于除法运算结果的最大整数;从类型上讲,与"/"运算符返回类型逻辑一致。

===========================
# python v2.7
>>> 3 / 2, 3.0 / 2, 3 // 2, 3.0 // 2
(1, 1.5, 1, 1.0)
===========================


Python3.x以后,“/”运算符被重命名为“真除”,不再依据操作数类型选择返回值类型,保证计算结果数值上的精度是第一位的。所以,无须再把操作数转变成浮点型,以保证运算结果不被截断小数部分。“//”运算符,不变。

===========================
# python v3.2
>>> 3 / 2, 3.0 / 2, 3 // 2, 3.0 // 2
(1.5, 1.5, 1, 1.0)
===========================