【发布时间】:2014-11-06 20:28:15
【问题描述】:
import math
from math import sqrt
Hailey=[0,4,1,4,0,0,4,1]
Verica=[3,0,0,5,4,2.5,3,0]
temp=[]
distance=0
x=0
for i in range(0,len(Hailey)):
if (Hailey[i]!=0 and Verica[i]!=0):
temp[x]=math.sqrt(abs(Hailey[i]**2) - abs(Verica[i]**2))
x=x+1
for i in range(0,len(temp)):
distance=distance+temp[i]
print("distance is",distance)
我正在尝试制作一个程序来找到两个人之间的欧几里得距离。它似乎在数学上并不正确,我得到了这个:
distance=distance + math.sqrt(abs(Hailey[i]**2) - abs(Verica[i]**2))
ValueError: math domain error
【问题讨论】:
-
Hailey=[0,4,1,4,0,0,4,1] ** 我在复制/粘贴时不小心擦掉了 1 个数字
-
您的下一个错误将来自您无法通过分配给不存在的索引来附加到列表的事实。摆脱
x并使用temp.append(math.sqrt(...))。 -
旁注:
for i in range(0,len(temp)):通常不是最 Pythonic 的方法。
标签: python math euclidean-distance