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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

参考技术A #导入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()

参考技术B ((t1.x-t2.x)^2+(t1.y-t2.y)^2+(t1.z-t2.z)^2)^0.5追问

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

追答

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

[PTA]习题5-3 使用函数计算两点间的距离

[PTA]习题5-3 使用函数计算两点间的距离

本题要求实现一个函数,对给定平面任意两点坐标(x₁,y₁)和(x₂,y₂),求这两点之间的距离。

函数接口定义:
double dist( double x1, double y1, double x2, double y2 );
其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, y2),函数dist应返回两点间的距离。

裁判测试程序样例:

#include <stdio.h>
#include <math.h>

double dist( double x1, double y1, double x2, double y2 );

int main()
{    
    double x1, y1, x2, y2;

    scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
    printf("dist = %.2f\\n", dist(x1, y1, x2, y2));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:
10 10 200 100
输出样例:
dist = 210.24

  • 提交结果:

在这里插入图片描述

  • 源码:
#include <stdio.h>
#include <math.h>

double dist(double x1, double y1, double x2, double y2);

int main()
{
    double x1, y1, x2, y2;

    scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
    printf("dist = %.2f\\n", dist(x1, y1, x2, y2));

    return 0;
}

/* 你的代码将被嵌在这里 */
double dist(double x1, double y1, double x2, double y2)
{
    double distance;
    
    distance = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));

    return distance;
}

以上是关于python中怎样定义一个函数来计算两点距离?的主要内容,如果未能解决你的问题,请参考以下文章

地图上的两点怎样计算距离

如何计算百度地图上两点的距离

如何计算百度地图上两点的距离

如何计算百度地图上两点的距离

python平面上的两点间距离计算?

[PTA]习题5-3 使用函数计算两点间的距离