6-3 jmu-python-组合数据类型-1.计算坐标点欧氏距离

6-3 jmu-python-组合数据类型-1.计算坐标点欧氏距离 ,第1张

读取若干个点,每个点放入元组。并将所有点的点信息、点的类型、点与原点的距离打印出来。

函数接口定义:
readPoint() #从一行以,分隔的数中读取坐标,放入元组并返回
distance(point) #计算point与原点的距离并返回,要math库中的函数
裁判测试程序样例:
/* 请在这里填写答案 */
n = int(input())
for i in range(n):
    p = readPoint()
    print('Point = {}, type = {}, distance = {:.3f}'.format(p,type(p),distance(p)))
输入格式:

输入n,代表底下要输入n行点坐标。坐标全部为整数。
点坐标x,y,z以,分隔。坐标全部为整数。

注意:坐标以,分隔,相应位置可能无字符或者包含多个空格字符,读入时按照0进行处理。

输出格式:

见输出样例

输入样例:
5
1,1,1
,,
2,,1
3,1,3
5,,
输出样例:
Point = (1, 1, 1), type = , distance = 1.732
Point = (0, 0, 0), type = , distance = 0.000
Point = (2, 0, 1), type = , distance = 2.236
Point = (3, 1, 3), type = , distance = 4.359
Point = (5, 0, 0), type = , distance = 5.000

 欧点式计算公式:

二维空间的公式

 为点 到原点的欧氏距离。

三维空间的公式

n维空间的公式

 所以,由题意,得

def readPoint():  # 从一行以,分隔的数中读取坐标,放入元组并返回
    n = input().split(',')
    m = []
    for i in n:    #遍历n
        if i != '':    #如果n中的数不为空,则定义为整型数并存入m
            m.append(int(i))
        else:          #n中的数为空,则赋值0并存入m
            m.append(0)
    m = tuple(m)    #转为元组
    return m


def distance(point):  # 计算point与原点的距离并返回
    sum1 = 0
    for i in point:
        sum1 += i ** 2   #用公式,**表示右上角的指数
    return sum1 ** 0.5


 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/715549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存