当前位置:首页 >> 脚本专栏

详谈Python2.6和Python3.0中对除法操作的异同

Python中除法有两种运算符:'/'和'//';有三种类型的除法:传统除法、Floor除法和真除法。

X / Y类型:

在Python2.6或者之前,这个操作对于整数运算会省去小数部分,而对于浮点数运算会保持小数部分;在Python3.0中变成真除法(无论任何类型都会保持小数部分,即使整除也会表示为浮点数形式)。

示例代码:

Python 2.7版本中结果:

> 3/2
1
> 3/2.0
1.5
> 4/2
2
> 4/2.0
2.0

Python 3.4版本中结果:

> 3/2
1.5
> 3/2.0
1.5
> 4/2
2.0
> 4/2.0
2.0

X // Y 类型:

Floor除法:在Python 2.2中新增的操作,在Python2.6和Python3.0中均能使用,这个操作不考虑操作对象的类型,总是省略小数部分,剩下最小的能整除的整数部分。

示例代码:

Python 2.7版本中结果:

> 3//2
1
> 3//2.0
1.0
> 4//2
2
> 4//2.0
2.0

Python 3.4版本中结果(与2.7版本一样):

概括

> 3//2
1
> 3//2.0
1.0
> 4//2
2
> 4//2.0
2.0

来讲:

"background-color: #ffff99">"background-color: #ccffcc">补充:

Floor除法:效果等同于math模块中的floor函数:

math.floor(x) :返回不大于x的整数

所以当运算数是负数时:结果会向下取整。

> 5//3  #1.6666666666666667
1
> -5//3
-2
> 

与floor()函数类似的还有很多,比如trunc()函数:

> import math
> math.trunc(-1.6)
-1
> math.trunc(1.6)
1

以上这篇详谈Python2.6和Python3.0中对除法操作的异同就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。