本文和大家分享的主要是python2
和
python3
中除法操作的一些区别,一起来看看吧,希望对大家
学习python有所帮助。
Python
中除法有两种运算符:
’/’
和
’//’
;有三种类型的除法:传统除法、
Floor
除法和真除法。
X / Y
类型:
在Python2.6
或者之前,这个操作对于整数运算会省去小数部分,而对于浮点数运算会保持小数部分;在
Python3.0
中变成真除法(无论任何类型都会保持小数部分,即使整除也会表示为浮点数形式)。
示例代码:
>>>3//2
1
>>>3//2.0
1.0
>>>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
概括来讲:
在Python 2.6
中,
’/’
执行传统除法,如果操作数都是整数的话,执行截断的整数除法(即对于结果只保留整数部分),否则,执行浮点除法(保留余数);
’//’
执行
Floor
除法,与
Python3.0
一样,对于整数执行截断除法,浮点数执行浮点除法。
在Python 3.0
中,
’/’
总是执行真除法,不管操作数的类型,都会返回包含任何余数的浮点结果;
’//’
执行
Floor
除法,截除掉余数并且针对整数操作数返回一个整数,如果有任何一个操作数是浮点数,则返回一个浮点数。
补充:
Floor除法
:效果等同于math
模块中的
floor
函数:
math.floor(x)
:返回不大于
x
的整数
所以当运算数是负数时:结果会向下取整。
>>>5//3#1.6666666666666667
1
>>>-5//3
-2
>>>
与floor()
函数类似的还有很多,比如
trunc()函数
:
>>>importmath
>>>math.trunc(-1.6)
-1
>>>math.trunc(1.6)
1
来源:简书