为什么会有第二只乌龟?

Why is there a second Turtle?

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

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

起始位置的第二只乌龟出现是因为s = turtle.getscreen().

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

turtle 库公开了两个接口,一个 functional 接口(对于初学者)和一个 object-oriented 接口。你得到了那只额外的乌龟,因为你混合了两个接口(@mkrieger1 的解决方案并没有完全解决这个问题)。

我总是推荐 import 比如:

from turtle import Screen, Turtle

screen = Screen()
turtle = Turtle()

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

screen.exitonclick()

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

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

s = turtle.getscreen()

s = turtle.Screen()

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