python中怎样定义一个函数来计算两点距离?

我试图写出函数distance的代码但是不知道怎么处理两个dot……

import math
class Dot:
     def __init__(self,x,y,z):
          self.x=float(x)
          self.y=float(y)
          self.z=float(z)   

t1=input('请输入点t1的坐标:')
t2=input('请输入点t2的坐标:')
t1=eval('[%s]'%t1)
t2=eval('[%s]'%t2)
T1=Dot(t1[0],t1[1],t1[2])
T2=Dot(t2[0],t2[1],t2[2])
print('点t1:',T1.x,T1.y,T1.z)
print('点t2:',T2.x,T2.y,T2.z)
s=math.sqrt((T1.x-T2.x)*(T1.x-T2.x)-(T1.y-T2.y)*(T1.y-T2.y)+(T1.z-T2.z)*(T1.z-T2.z))
print("两点间的距离为:%s"% s)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-30
#导入math包
import math
#定义点的函数
class Point:
    x = 0
    y = 0
    z = 0
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

    def getx(self):
        return self.x

    def gety(self):
        return self.y

    def getz(self):
        return self.z

#定义距离函数
class Getlen:
    def __init__(self, p1, p2):
        self.x = p1.getx() - p2.getx()
        self.y = p1.gety() - p2.gety()
        self.z = p1.getz() - p2.getz()
        self.len = math.sqrt((self.x)**2 + (self.y)**2 + (self.z)**2)

    def getlen(self):
        print("两点间的距离为:" , self.len)

p1 = Point(0,0,0)
p2 = Point(1,1,1)
g = Getlen(p1,p2)
g.getlen()

第2个回答  2018-05-29
((t1.x-t2.x)^2+(t1.y-t2.y)^2+(t1.z-t2.z)^2)^0.5追问

还有一个小问题,我想要用户输入一个点的数据,但是这个为什么却是错的?正确的应该怎么写呢?

追答

你拿到的是字符串,你把它转化为三个值就好了