“/”和“//”

“/” 在python2中为传统除法,即当除数被除数都为整数时结果为舍去小数部分的整数,除数和被除数有一个为浮点数,结果为精确的浮点数。在python3中为真除法,无论除数和被除数为什么,结果都为精确的浮点数。

“//” 在python2和python3中为地板除。从Python2.2开始到最新的Python3,增加了一个操作符 // ,以执行地板除://除法不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字 举个栗子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#python2 
>>> 5/2
2
>>>5.0/2
2.5
>>>5.0/2.0
2.5
>>>5//2
2
>>>5.0//2
2.0
>>>5.0//2.0
2.0

#python3
>>> 5/2
2.5
>>> 5.0/2
2.5
>>> 5.0/2.0
2.5

总的来说:

“/”从传统除法变为了真除法(也叫精确除法),“//”从python2.2到现在都没变过

传统除法的原则:除数和被除数为整数用地板除,有一个为浮点数用真除法 真除法的原则:忽略除数和被除数的数值类型,结果都为精确的浮点数 地板除的原则:始终对小数部分向下取整,除数和被除数为整数,结果为整数,有一个为浮点数,结果为浮点数,格式基本已确定为整数部分.0