【问题标题】:Why is there a second Turtle?为什么会有第二只海龟?
【发布时间】:2020-09-27 12:01:30
【问题描述】:

我正在用 python 学习海龟图形,由于某种原因,屏幕上出现了第二个海龟,我什至没有创建第二个海龟。我怎样才能摆脱第二只乌龟?

import turtle
s = turtle.getscreen()
t = turtle.Turtle()
for i in range(4):
    t.fd(100)
    t.rt(90)
turtle.exitonclick()

【问题讨论】:

  • 你的代码在哪里,到目前为止你做了什么来尝试解决问题?
  • 请向我们展示你的作品,否则我们不知道你做了什么。

标签: python turtle-graphics


【解决方案1】:

由于s = turtle.getscreen()这一行,出现了起始位置的第二个海龟。

这行不需要(你不要使用s),如果你删除它,这个海龟就会消失,但其余的代码似乎和以前一样工作。

【讨论】:

【解决方案2】:

turtle 库公开了两个接口,一个函数式 接口(适合初学者)和一个面向对象 接口。你得到了额外的海龟,因为你混合了两个接口(@mkrieger1 的解决方案并没有完全解决这个问题)。

我总是推荐import 喜欢:

from turtle import Screen, Turtle

screen = Screen()
turtle = Turtle()

for _ in range(4):
    turtle.forward(100)
    turtle.right(90)

screen.exitonclick()

这使您可以访问面向对象的界面并阻止功能界面。将两者混合会导致各种错误和工件。

【讨论】:

    【解决方案3】:

    要结合 mkrieger1 和 cdlane 的答案,您可以替换

    s = turtle.getscreen()
    

    s = turtle.Screen()
    

    你仍然有一个保存屏幕的变量(以防万一你需要它),并且它不会在中心生成额外的海龟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-17
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      相关资源
      最近更新 更多