0

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

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

3 回答 3

1

起始位置的第二个海龟因为这条线而出现s = turtle.getscreen()

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

于 2020-06-08T14:01:55.800 回答
0

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

我总是推荐一个importlike:

from turtle import Screen, Turtle

screen = Screen()
turtle = Turtle()

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

screen.exitonclick()

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

于 2020-06-10T05:59:25.433 回答
0

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

s = turtle.getscreen()

s = turtle.Screen()

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

于 2021-12-16T19:49:57.837 回答