Turtle Graphics Not Responding
我正在用Python中的turtle包创建图,除一个问题外,它在某种程度上是成功的。 一旦Turtle生成了我在代码中拥有的图表,它就会使程序说"不响应",最终我必须结束任务。 我正在使用Windows 7。
你们有没有经历过这种情况或知道根本原因? 我尝试完全重新安装Python,但这似乎并未影响该问题。
这是一些示例代码,这些代码将使其无法响应:
1 2 3 4 | import turtle from turtle import forward, right, left forward(50) |
我遇到了同样的问题(我也曾在Win 7上,然后在Win XP上也遇到了同样的问题),我才弄清楚了。
完成后必须说
既然我知道了这一点,它就变得更有意义了,因为既然Python不知道乌龟完成了,它可能正在等待另一条乌龟命令。
这是我假设您正在使用的库的文档(在Python 2.7中)。我就是这样想的。它说的是Python 2.7,但这也适用于Python 2.5。
http://docs.python.org/library/turtle.html
希望对您或其他阅读者有帮助,
亚历克斯
只需在末尾添加对exitonclick的调用即可。 Turtle类是使用Tkinter实现的,并且
1 2 3 4 5 6 | from turtle import * #make a square for _ in range(4): forward(100) left(90) exitonclick() |
请享用!
我正在使用python 3.6.0并遇到相同的问题。代码块后的
1 2 3 4 5 6 7 | import turtle for _ in range(5): turtle.forward(100) turtle.right(360/5) turtle.done() # <------------ |
添加
我认为关闭turtle程序的诀窍是重命名" turtle"模块并将其存储为新对象,然后调用.done()方法或.exitonclick()方法,例如:
1 2 3 4 5 6 7 8 9 10 11 12 | from turtle import * import turtle #make a square for i in range(4): turtle.forward(100) turtle.left(90) turtle.forward(100) turtle.left(90) turtle.forward(100) turtle.left(90) turtle.forward(100) turtle.done() |
或者,类似:
1 2 3 4 5 6 7 8 | from turtle import * import turtle as t #draw a right angle for i in range(4): t.forward(100) t.left(90) t.forward(100) t.exitonclick() |
仅仅单独导入" turtle"模块是行不通的。使用" from turtle import *"通配符。然后,您将能够使用诸如forward()或left()之类的调用函数,而不必使用任何前缀或" object_name.forward()"。只要您使用简单的done()或exitonclick()命令完成代码,它就可以工作:
1 2 3 4 5 6 7 8 9 10 11 | from turtle import * forward(100) shape('turtle') right(90) forward(100) right(90) forward(100) right(90) forward(100) done() |
闲置有问题。如果从python命令行运行,它将起作用
在代码末尾添加以下行:
那应该解决您的问题!
我在我的IDLE中尝试了代码,它运行良好。您的机器较旧/较慢吗?尽管我不认为这是问题所在。尝试在最后添加一行:
1 | exitonclick() |
它可能就像乌龟似的气质。另外,如果您找到了可以帮助或解决问题的答案,请确保投票并接受答案(问题旁边的箭头图标),否则问题将显示为未解决,您将继续获得答案。
-哈里
我曾经遇到过您的问题,然后尝试为IDLE创建快捷方式,如下所示(不要忘了" -n"):
并通过快捷方式启动IDLE,输入yr代码并享受!
当使用turtle.done()时,第一次可以使用,但是第二次则不能。
解决这个问题:
1 2 3 4 5 | turtle.done() try: turtle.bye() except turtle.Terminator: pass |
从这里
在Spyder中运行乌龟程序的问题
如何在Python 3.4.3中解决此问题:
1
2
3
4
5
6
7
8 >>> help(turtle.bye)
Help on function bye in module turtle:
bye()
Shut the turtlegraphics window.
Example:
>>> bye()