使用turtle实现随机移动时遭遇TypeError错误求助
问题解决:turtle.goto()触发TypeError错误
错误原因
你写的goto列表里只存了单个坐标数值(比如turtle.xcor()+10是一个浮点数),但turtle.goto()方法要求传入完整的坐标对——要么是两个单独的参数(x, y),要么是包含两个元素的可迭代对象(元组/列表)。直接传单个浮点数,就会触发turtle.Vec2D()的参数错误。
修正后的代码
from turtle import Screen import turtle, random, time turtle.speed(1) # 每个元素是完整的(x,y)坐标对,保持一个轴不变,另一个轴±10 goto_options = [ (turtle.xcor() + 10, turtle.ycor()), (turtle.xcor() - 10, turtle.ycor()), (turtle.xcor(), turtle.ycor() + 10), (turtle.xcor(), turtle.ycor() - 10) ] # 随机选一个坐标对移动 turtle.goto(random.choice(goto_options))
额外提示
如果需要多次执行移动逻辑,每次生成goto_options时都要重新调用turtle.xcor()和turtle.ycor(),否则会一直使用海龟初始位置的坐标计算偏移量。
内容的提问来源于stack exchange,提问作者Oliver Parr
相关产品推荐
相关产品推荐

