Python实现直角坐标系求两点间距离

用到了numpy来求平方根,可以用math等代替。里面包含了异常处理等功能,如果认为代码有冗余可以删去。

数学公式:

 接下来就好办了,将坐标记录好之后平方,相加,开方即可。

代码实现:

import numpy as np


# 计算函数
def calculate(a, b):
    while True:
        try:
            x_position = pow(a[0] - b[0], 2)  # 平方运算
            y_position = pow(a[1] - b[1], 2)
            result = np.sqrt(x_position + y_position)  # 相加并开方
        except Exception as e:  # 异常处理
            print(e)
            continue
        else:  # 输出结果
            print(f'A到B点的距离为: {result}')
            return result
        finally:
            print(f'\n{"-"*15}\ncalculate finished')


# 主函数
def main():
    flag = 'y'
    count = 0
    while flag == 'y':
        try:  # 用户输入
            x_1, y_1 = eval(input('输入A点坐标(英文输入法的逗号隔开):'))
            a_position = (x_1, y_1)
            x_2, y_2 = eval(input('输入B点坐标(英文输入法的逗号隔开):'))
            b_position = (x_2, y_2)
        except Exception as e:  # 异常处理
            print(f'{e}\n请重新输入\n{"-"*15}')
            continue
        else:  # 再来一次
            print(f'begin calculate\n{"-"*15}\n')
            calculate(a_position, b_position)
            count += 1
            flag = str(input("\n重来吗(y/n): ")).lower()

    print(f'\n共计计算{count}次,欢迎下次使用')

if __name__ == '__main__':
    main()

    

注意:输入时要以英文输入法的逗号隔开,否则将触发异常。

结果展示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值