试图找到平方根,但我得到一个数学域错误

时间:2015-09-21 22:22:09

标签: python

我认为我的代码应该正常工作,但为什么我一直收到域错误?

from math import sqrt

x1 = float(input("Enter the x1"))

x2 = float(input("Enter the x2"))

y1 = float(input("Enter the y1"))

y2 = float(input("Enter the y2"))

x_distance = x2 - x1**2

y_distance = y2 - y1**2

distance = x_distance + y_distance

print math.sqrt(distance)

1 个答案:

答案 0 :(得分:2)

x_distance = x2 - x1**2

错了。您需要(x2 - x1)周围的括号。公式是

distance = sqrt((x2 - x1)^2 + (y2 - y1)^2)

所以你需要

x_distance = (x2 - x1)**2
y_distance = (y2 - y1)**2

代替。

在您的情况下,您会收到域错误,因为可能最终会出现负距离。

PS:还将math.sqrt替换为sqrt,因为您已经导入了它。

Live example