在Python中,如何在特定距离或坐标处停止海龟?

在Python中,如何在特定距离或坐标处停止海龟?,python,distance,turtle-graphics,coordinate,Python,Distance,Turtle Graphics,Coordinate,这是我试图让海龟在移动了近400像素后停止移动 def race(): while True: alex.forward(r_alex) a = a + r_alex if a > 399.9: break 这就是我得到的 Traceback (most recent call last): File "/Users/Jason/Desktop/Assignment1/a1_s3536647_bui_an

这是我试图让海龟在移动了近400像素后停止移动

def race():
    while True:
        alex.forward(r_alex)
        a = a + r_alex
        if a > 399.9:
            break
这就是我得到的

Traceback (most recent call last):
  File "/Users/Jason/Desktop/Assignment1/a1_s3536647_bui_anh_quan.py", line 84, in <module>
    race()
  File "/Users/Jason/Desktop/Assignment1/a1_s3536647_bui_anh_quan.py", line 77, in race
    a = a + r_alex
UnboundLocalError: local variable 'a' referenced before assignment
回溯(最近一次呼叫最后一次):
文件“/Users/Jason/Desktop/Assignment1/a1_s3536647_bui_anh_quan.py”,第84行,在
种族()
文件“/Users/Jason/Desktop/Assignment1/a1_s3536647_bui_anh_quan.py”,第77行,在race中
a=a+r\U
UnboundLocalError:赋值前引用的局部变量“a”

a=a+r\u alex
在您实际定义
a
之前使用
a

我猜
a
是海龟的位移,所以也许你应该尝试以下方法:

def race():
    a = 0
    while True:
        alex.forward(r_alex)
        a += r_alex
        if a > 399.9:
            break
更好的是:

def race():
    a = 0
    while(a > 399.9):
        alex.forward(r_alex)
        a += r_alex

非常感谢你!我现在明白问题了!