在python中使用distance ValueError: math domain error
函数时,我遇到了“sqrt
”的问题。
这是我的代码:
from math import sqrt
def distance(x1,y1,x2,y2):
x3 = x2-x1
xFinal = x3^2
y3 = y2-y1
yFinal = y3^2
final = xFinal + yFinal
d = sqrt(final)
return d
答案 0 :(得分:11)
您的问题是Python中的取幂是使用a ** b
完成而不是a ^ b
(^
是按位XOR),这会导致final为负值,从而导致域错误。
您的固定代码:
def distance(x1, y1, x2, y2):
return ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** .5 # to the .5th power equals sqrt
答案 1 :(得分:6)
Python中的幂函数是**
,而不是^
(这是位xor)。所以使用x3**2
等。