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

Python通过列表索引实现track_robot机器人坐标计算的X轴处理问题

机器人坐标追踪实现方案

原代码存在的问题

  • 用steps.index(coord)获取索引逻辑错误:如果入参中存在重复的坐标值,index()方法只会返回第一个匹配值的索引,会导致后续所有同值坐标的方向判断完全错乱,应该用enumerate遍历同时获取真实索引和对应坐标值。
  • 维护4个方向变量的逻辑冗余,仅需要两个轴变量即可完成计算,天然支持负坐标输入,不需要额外做正负判断处理。

最终实现代码

# 给机器人传入任意数量坐标,返回其最终位置 [x轴(东正西负), y轴(北正南负)]
# 入参顺序:北、东、南、西循环排列
def track_robot(*steps):
    x = 0  # 东西轴:东为正,西为负
    y = 0  # 南北轴:北为正,南为负
    for idx, coord in enumerate(steps):
        direction = idx % 4
        if direction == 0:
            # 北向,y轴加对应坐标
            y += coord
        elif direction == 1:
            # 东向,x轴加对应坐标
            x += coord
        elif direction == 2:
            # 南向,y轴减对应坐标
            y -= coord
        elif direction == 3:
            # 西向,x轴减对应坐标
            x -= coord
    return [x, y]

逻辑说明

  • 约定南北向为Y轴,北向为正方向;东西向为X轴,东向为正方向,负坐标会自动处理反向移动的逻辑,不需要额外判断正负。
  • 每次用当前参数索引对4取模,即可得到对应的方向:0对应北、1对应东、2对应南、3对应西,完美匹配入参的循环排列规则。
  • 最终返回的结果可根据需要调整顺序,如果要返回[南北坐标, 东西坐标],把return语句改成return [y, x]即可。

示例运行验证

  • track_robot(20, 30, 10, 40) → 返回 [-10, 10](西10,北10)
  • track_robot(10, -10, -10, 10) → 返回 [-20, 20](西20,北20)
  • track_robot(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) → 返回 [-4, -4](西4,南4)

内容的提问来源于stack exchange,提问作者Abdullah Bera Koksal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:36:03