为什么这个部门没有正确执行?

时间:2010-10-03 18:24:47

标签: python python-2.x division

我在Python中遇到一个奇怪的问题:除法没有正确执行:

print pointB[1]
print pointA[1]
print pointB[0]
print pointA[0]
print  (pointB[1]-pointA[1]) / (pointB[0]-pointA[0])

结果如下:

100
50
100
40
0

感谢

3 个答案:

答案 0 :(得分:18)

上述行为适用于Python 2. /的行为在Python 3中得到修复。在Python 2中,您可以使用:

from __future__ import division

然后使用/获得您想要的结果。

>>> 5 / 2
2
>>> from __future__ import division
>>> 5 / 2
2.5

由于您要分割两个整数,因此您将结果作为整数。

或者,将其中一个数字更改为float

>>> 5.0 / 2
2.5

答案 1 :(得分:9)

这是正确完成的。

50/60 = 0

也许您正在寻找50.0 / 60.0 = 0.83333333333333337,您可以将变量转换为浮点数来获取:

print  float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])

答案 2 :(得分:3)

这是整数除法在python中的工作方式。在计算中使用浮点数或转换为浮点数:

float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])