You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python脚本从文本文件导入坐标计算距离及City Block Distance

解决坐标点距离计算的Python方案

第一步:准备数据文件

首先你需要手动创建一个名为coordinates.txt的文件,按照题目要求的格式整理内容,具体如下:

A:0,0;B:3,4
C:4,7;D:2,9
E:8,2;F:0,6

(注意要把原始的逗号分隔改成冒号分隔,严格遵循<Name1>:X1,Y1;<Name2>:X2,Y2的行格式)

第二步:编写Python计算脚本

下面是针对新手友好的完整代码,我会把每一步的逻辑写清楚:

import math

# 安全读取数据文件(自动关闭文件,避免资源泄漏)
with open('coordinates.txt', 'r') as file:
    # 读取所有行并去除空行/换行符
    point_pairs = [line.strip() for line in file if line.strip()]

# 遍历每组点对进行计算
for pair in point_pairs:
    # 用分号拆分两个点的信息
    point1_info, point2_info = pair.split(';')
    
    # 提取第一个点的名称和坐标
    name1, coord1 = point1_info.split(':')
    x1, y1 = map(int, coord1.split(','))
    
    # 提取第二个点的名称和坐标
    name2, coord2 = point2_info.split(':')
    x2, y2 = map(int, coord2.split(','))
    
    # 按公式计算两种距离
    actual_distance = math.sqrt((x1 - x2)**2 + (y1 - y2)**2)
    city_block_distance = abs(x1 - x2) + abs(y1 - y2)
    
    # 按要求格式输出,实际距离保留三位小数
    print(f"From {name1} ({x1}, {y1}) to {name2} ({x2}, {y2}): actual distance {actual_distance:.3f}; city block distance {city_block_distance}")

脚本逻辑说明

  • 导入math模块是为了用sqrt()计算平方根
  • 用with open读取文件是Python推荐的安全写法,不用手动关闭文件
  • 逐行处理数据时,先拆分点对,再分别提取每个点的名称和坐标(把字符串转成整数才能计算)
  • 严格使用题目给出的公式计算两种距离,实际距离用.3f格式化保证三位小数的输出格式
  • 最后直接打印出符合要求的结果

运行这个脚本后,你就能得到和题目示例完全一致的输出啦!

小提示(针对Excel导入需求)

如果你之后需要从Excel读取坐标数据,可以先安装pandas库(执行pip install pandas),然后用pandas.read_excel()读取数据,处理逻辑和上面的文本文件方案类似——核心都是提取坐标、代入公式计算,只是读取数据源的方式不同。先把当前的文本文件方案吃透,再尝试Excel导入会更顺手哦~

内容的提问来源于stack exchange,提问作者Arun Sehrawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:35:30