python中的移动海龟
我需要一些帮助。我正在用python编写海龟的首字母缩写,但无论出于什么原因,我都无法让海龟移动。即使光标移动,海龟也会在屏幕中部开始。即使我正在使用penup()和pendown() 我将代码缩减为:python中的移动海龟,python,turtle-graphics,Python,Turtle Graphics,我需要一些帮助。我正在用python编写海龟的首字母缩写,但无论出于什么原因,我都无法让海龟移动。即使光标移动,海龟也会在屏幕中部开始。即使我正在使用penup()和pendown() 我将代码缩减为: import turtle window = turtle.Screen() window.bgcolor("red") def draw_art(): charles = turtle.Turtle() charles.shape("turtle")
import turtle
window = turtle.Screen()
window.bgcolor("red")
def draw_art():
charles = turtle.Turtle()
charles.shape("turtle")
charles.color("yellow")
charles.speed(2)
turtle.penup()
turtle.goto(-100,50)
turtle.pendown()
charles.back(100)
charles.right(90)
charles.forward(100)
charles.right(90)
charles.backward(100)
window.exitonclick()
draw_art()
def draw_art():
charles=turtle.turtle()
让我们谈谈为什么要搬走查尔斯:
在顶部,您创建了一个Turtle类的实例,并将其设置为变量charles
查尔斯是一只乌龟,是的,但你想移动查尔斯——他就是你的“乌龟”的例子
希望这有助于你的理解!更多信息,请查看Python中的OOP 海龟模块为程序员提供了一个功能性和面向对象的界面。你犯了一个常见的错误,就是不小心把两者混在一起了。当你写作时:
charles = turtle.Turtle()
charles.forward(100)
您正在使用您创建的海龟上的面向对象接口。(对你有好处!)但这:
turtle.goto(-100, 50)
调用为您创建的默认turtle上的函数接口。有一种简单的方法可以避免此错误,而不是使用以下语句:
import turtle
使用:
这锁定了功能接口,只允许面向对象的接口。因此,您的示例代码现在如下所示:
from turtle import Turtle, Screen
def draw_art():
charles = Turtle('turtle')
charles.color('yellow')
charles.speed('slow')
charles.penup()
charles.goto(-100, 50)
charles.pendown()
charles.back(100)
charles.right(90)
charles.forward(100)
charles.right(90)
charles.backward(100)
window = Screen()
window.bgcolor('red')
draw_art()
window.exitonclick()
像
turtle.goto(-100,50)
这样的调用现在将生成一个错误:未定义名称“turtle”
您正在移动“turtle”(在代码中间)。。。但是你应该搬家“查尔斯”谢谢你。你的答案没有解释为什么从Python的角度来看,turtle.goto(-100,50)
是完全有效的,即使它与OP的操作不一致。(提示:对于新程序员来说,这是一个令人困惑的问题,因为有人试图让海龟更容易为新程序员使用!)感谢您注意到这一疏忽,@cdlane!
from turtle import Turtle, Screen
def draw_art():
charles = Turtle('turtle')
charles.color('yellow')
charles.speed('slow')
charles.penup()
charles.goto(-100, 50)
charles.pendown()
charles.back(100)
charles.right(90)
charles.forward(100)
charles.right(90)
charles.backward(100)
window = Screen()
window.bgcolor('red')
draw_art()
window.exitonclick()