我在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
感谢
答案 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])