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

如何让Turtle在坐标(-200, 0)处停止?赋值报错问题排查

解决Python Turtle在指定坐标(-200, 0)处停止的问题

你的代码里有两个核心问题导致无法在目标坐标停止:

  1. 错误的位置判断逻辑:t.pos()返回的是包含x、y坐标的元组(比如(-200.0, 0.0)),直接对元组用abs()没有意义,而且abs(...) < -201这个条件永远不可能成立——绝对值结果都是非负数,不可能小于负数。
  2. 没有针对目标坐标做精准判断:你要回到(-200, 0),需要分别检查x和y坐标是否接近目标值(因为turtle移动可能存在微小浮点误差,直接判等容易出错)。

下面是修正后的完整代码:

import turtle

t = turtle.Turtle()
t.speed(20)
t.goto(-200, 0)
t.color('red')
t.fillcolor('yellow')
t.begin_fill()
t.width(3)

while True: 
    t.fd(400)
    t.lt(170)
    # 获取当前坐标
    current_x, current_y = t.pos()
    # 判断是否回到目标坐标附近(允许±1的误差)
    if abs(current_x - (-200)) < 1 and abs(current_y - 0) < 1:
        t.end_fill()
        break

turtle.mainloop()

关键修正说明:

  • 用current_x, current_y = t.pos()拆分出单独的x、y坐标,方便判断
  • 用abs(current_x - 目标x) < 阈值的方式判断是否接近目标坐标,这里设置的阈值是1,你可以根据需要调整(比如要求更精准就设0.1)
  • 移除了原代码中无效的判断条件,替换为针对目标坐标的有效逻辑

另外提醒:不要尝试直接给t.pos()赋值(比如t.pos() = (-200, 0)),这是语法错误——pos()是获取位置的方法,要移动到指定位置必须用goto()方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 03:07:36