7

我在 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

谢谢

4

3 回答 3

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
于 2010-10-03T18:28:27.743 回答
9

它是正确完成的。

50/60 = 0

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

print  float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
于 2010-10-03T18:29:48.857 回答
3

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

float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
于 2010-10-03T18:29:47.727 回答