Python 仅使用图形包定义欧氏函数距离 这就是我得到的错误 文件“/Users/tigersopano/Documents/test.py”,第7行,在 距离((100,50),(45,30)) 文件“/Users/tigersopano/Documents/test.py”,第3行,距离 pt1=点(x,y) 名称错误:未定义名称“x” 我不知道我做错了什么

Python 仅使用图形包定义欧氏函数距离 这就是我得到的错误 文件“/Users/tigersopano/Documents/test.py”,第7行,在 距离((100,50),(45,30)) 文件“/Users/tigersopano/Documents/test.py”,第3行,距离 pt1=点(x,y) 名称错误:未定义名称“x” 我不知道我做错了什么,python,euclidean-distance,Python,Euclidean Distance,错误是自我解释的: File "/Users/tigersoprano/Documents/test.py", line 7, in <module> distance((100,50),(45,30)) File "/Users/tigersoprano/Documents/test.py", line 3, in distance pt1=Point(x,y) NameError: name 'x' is not defined" 这意味着您必须告诉python什么是x、y、x

错误是自我解释的:

File "/Users/tigersoprano/Documents/test.py", line 7, in <module>
distance((100,50),(45,30))
File "/Users/tigersoprano/Documents/test.py", line 3, in distance
pt1=Point(x,y)
NameError: name 'x' is not defined"
这意味着您必须告诉python什么是x、y、x1和y1变量

函数声明只是定义距离(pt1,pt2):,因此必须用
pt1
pt2
表示所有变量,而不是相反。例如:

pt1=Point(x,y)
NameError: name 'x' is not defined"
还要注意,Python不是Fortran:函数名不应用作变量名

如果您确实想使用该软件包,则应执行以下操作:

def distance(pt1,pt2):
    x = pt1[0]
    y = pt1[1]
    x1 = pt2[0]
    x2 = pt2[1]
    dist = sqrt((x-x1) ** 2 + (y-y1) ** 2)
    return dist

您的问题是关于基本Python,而不是关于图形或欧几里德距离。它与图形包有关。我很感激,但我们是否可以使用图形包中的点函数来执行此任务?
def distance(pt1,pt2):
    x = pt1[0]
    y = pt1[1]
    x1 = pt2[0]
    x2 = pt2[1]
    dist = sqrt((x-x1) ** 2 + (y-y1) ** 2)
    return dist
def distance(pt1,pt2):
    x = pt1.getX()
    y = pt1.getY()
    x1 = pt2.getX()
    x2 = pt2.getX()
    dist = sqrt((x-x1) ** 2 + (y-y1) ** 2)
    return dist

d = distance(Point(100,50),Point(45,30))