首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >巨蟒中的移动龟

问巨蟒中的移动龟
EN

Stack Overflow用户
提问于 2017-06-27 23:07:19
回答 2查看 6.5K关注 0票数 1

我需要些帮助。我正在用巨蟒写我的首字母,但无论出于什么原因,我都不能让乌龟动起来。即使光标移动,海龟仍然从屏幕的中央开始。尽管我使用的是penup()和pendown()。

我已经把我的代码压缩成这样了:

代码语言:javascript
复制
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()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-28 00:28:59

海龟模块向程序员展示了一个功能和面向对象的界面.您已经使成为意外混合这两种情况的常见错误。当你写:

代码语言:javascript
复制
charles = turtle.Turtle()
charles.forward(100)

你在你创建的海龟上使用面向对象的界面。(对你很好!)但这一点:

代码语言:javascript
复制
turtle.goto(-100, 50)

调用为您创建的默认海龟上的函数接口。有一种简单的方法可以避免这个错误--而不是使用以下语句:

代码语言:javascript
复制
import turtle

用途:

代码语言:javascript
复制
from turtle import Turtle, Screen

这锁定了函数接口,并且只允许面向对象的接口。因此,您的示例代码现在看起来如下:

代码语言:javascript
复制
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)这样的调用现在将生成一个错误:name 'turtle' is not defined

票数 1
EN

Stack Overflow用户

发布于 2017-06-27 23:45:23

def draw_art(): charles = turtle.Turtle()

让我们谈谈为什么移动查尔斯:

首先,您创建了Turtle类的一个实例,并将其设置为变量charles。

查尔斯是只海龟,是的,但是你想要移动查尔斯--他就是你那种叫做海龟的“类型”。

希望这能帮助你理解!有关更多信息,请查看Python中的OOP。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44791295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档