我在 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
谢谢
我在 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
谢谢
上述行为适用于 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
它是正确完成的。
50/60 = 0
也许您正在寻找 50.0/60.0 = 0.83333333333333337,您可以将变量转换为浮点数以获得:
print float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
这就是python中整数除法的工作原理。在计算中使用浮点数或转换为浮点数:
float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])