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

路径距离计算代码问题:结果始终为0,求错误原因及解决方法

代码错误分析与修正

你的代码有两个关键问题导致结果始终为0:

  • 遍历逻辑完全错误:你当前是逐个遍历path字符串里的每个字符(比如'A'、'B'、'-'这类单个字符),然后每次都判断字典的key是否等于完整的path("AB-BE"),但你的字典里根本没有这个key,自然永远不会触发累加操作。
  • 注释符号使用不规范:Python的单行注释应该用#,你用的单引号会被解释为字符串字面量,虽然不会引发报错,但不符合代码规范。

修正后的代码

正确的思路是先把路径按-分割成独立的路段,再逐个从字典中取出对应距离累加:

# 存储路段与对应距离的字典
distances = {"AB": 8, "AC": 4, "AD": 8, "AE": 11, "BC": 5, "BD": 6, "BE": 3}

# 目标路径:ABE
path = "AB-BE"
total_distance = 0

# 将路径拆分为单个路段
segments = path.split("-")
for seg in segments:
    # 累加每个路段的距离,用get避免路段不存在时触发KeyError
    total_distance += distances.get(seg, 0)

print(total_distance)  # 输出结果:11

关键改进说明

  • 使用split("-")将复合路径拆分为单独的路段(例如把"AB-BE"拆成["AB", "BE"]),这样就能逐个匹配字典中的key。
  • 用distances.get(seg, 0)替代直接取值distances[seg],这样如果路径中出现字典未定义的路段,程序不会崩溃,而是默认累加0(你可以根据需求修改为抛出提示信息)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 23:02:23