turtle.xcor()/.ycor() if 语句比较在应该的时候不 return 为真

turtle.xcor()/.ycor() if-statement comparison doesn't return true when it should

我正在尝试比较海龟的位置与我的盒子的边界,以确保它在边界内。

首先,我将乌龟放在 (0,0) 并使用

将播放设置为 True
t.goto(0,0)
playing = True

然后我开始 while 循环(这里以外的所有内容都在这个 while 循环中)

while playing:

那我做个动作

t.fd(10)

然后我做这个比较...

if t.xcor() < -200 or t.xcor() > 200 or t.ycor() < -200 or t.ycor() > 200:
  playing = False

我的问题是我的乌龟在退出循环之前只移动过一次——在满足退出条件之前循环只执行一次。 xcor()/ycor() 不是最好的选择吗?查看 Turtle 上的 python 文档,它似乎应该可以工作。我在这里迷路了。有帮助吗?

编辑:在 t.fd(10) 前后打印 t.xcor(),我先得到 0,然后得到 -4.2345234e-15(不确定这是否意味着 ^15 或 ^-15 ).

通过声明变量解决了问题

tx, ty = t.pos()

然后进行比较

if tx < -200 or tx > 200 or ty < -200 or ty > 200:
   playing = False

仍然不知道为什么这是个问题。