海龟图形无响应

19 投票
12 回答
59647 浏览
提问于 2025-04-17 00:27

我正在用Python的turtle库创建图形,基本上是成功的,但有一个问题。一旦turtle生成了我代码中的图形,程序就会显示“没有响应”,最后我只能结束这个任务。我是在Windows 7上操作的。

你们有没有遇到过这个问题,或者知道原因是什么?我尝试过完全重新安装Python,但似乎没有解决这个问题。

下面是一些示例代码,会导致程序没有响应:

import turtle
from turtle import forward, right, left

forward(50)

12 个回答

5

我在使用 Python 3.6.0 的时候也遇到了同样的问题。在你的代码块后面加上 turtle.done() 可以让海龟图形窗口保持响应,不会变得无反应。

import turtle 

for _ in range(5):
    turtle.forward(100)
    turtle.right(360/5)

turtle.done() # <------------
10

只需要在最后加上一个调用 exitonclick 的语句就可以了。Turtle 类是用 Tkinter 实现的,而 exitonclick() 会调用 mainloop(),这样就能让海龟窗口保持打开状态,直到你在画布上点击任意地方。所以,一个简单的程序看起来是这样的:

from turtle import *
#make a square
for _ in range(4):
   forward(100)
   left(90)
exitonclick()

玩得开心!

24

我之前也遇到过同样的问题(我当时用的是Win 7,后来在Win XP上也遇到了同样的问题),我刚刚搞明白了。

你需要在完成后输入 turtle.done()

现在我明白了,因为Python不知道海龟(turtle)已经完成,所以它可能在等着你给海龟发另一个指令。

这是我认为你在用的库的文档(在Python 2.7中)。我就是通过这个文档搞明白的。虽然上面写的是Python 2.7,但在Python 2.5中也可以用。
http://docs.python.org/library/turtle.html

希望这对你有帮助(或者对其他看到这个的人有帮助),
Alex

撰写回答