问题
I am creating diagrams with the turtle package in Python, and it is successful to some extent, except for one problem. Once turtle generates the diagram that I have in code, it causes the program to say "Not responding" and eventually I have to end the task. I am using Windows 7.
Have any of you experienced this or know the root cause? I tried reinstalling Python completely, but that didn't seem to affect the problem.
Here is some example code that will make it fail to respond:
import turtle
from turtle import forward, right, left
forward(50)
回答1:
I had the same problem (I was on Win 7 as well, and I then got the same problem on Win XP), and I just figured it out.
You have to say turtle.done()
when you're done.
Now that I know this, it makes more sense, because since Python doesn't know that the turtle is done, it's probably waiting for another command for the turtle.
Here's the documentation (in Python 2.7) of what library I assume you're using. It's how I figured that out. It says Python 2.7 but this also works for Python 2.5.
http://docs.python.org/library/turtle.html
Hope that helps (for you or anyone else reading this),
Alex
回答2:
Just add a call to exitonclick at the end. The Turtle class is implemented using Tkinter and exitonclick()
invokes mainloop()
which will keep the turtle window open until you click anywhere in the canvas. So, a simple program looks like this:
from turtle import *
#make a square
for _ in range(4):
forward(100)
left(90)
exitonclick()
Enjoy!
回答3:
Add a mainloop()
or exitonclick()
or done()
or something that shows python that you want to exit the turtle window
回答4:
I'm using python 3.6.0 and ran into the same issue. The turtle.done()
after your code block prevents the turtle graphic window from becoming unresponsive.
import turtle
for _ in range(5):
turtle.forward(100)
turtle.right(360/5)
turtle.done() # <------------
回答5:
add the following line at the end of your code :
wait_for_user()
That should solve your problem!
回答6:
It has some problem with IDLE. It will work if run from python command line
回答7:
I tried the code in my IDLE and it worked perfectly. Do you have an old/slower machine? Although I don't think that's the problem. Try adding a line at the end:
exitonclick()
Its probably just as turtle seem a bit temperamental. Also, If you have found an answer that helped or solved your problem, be sure to upvote and accept the answer (the arrow icon near the question), as the question otherwise displays as unsolved and you will continue getting answers.
-Harry
回答8:
I've come across your problem ever,and then I try to create a shortcut for IDLE as follow(not forget the " -n"):
target:D:\Python27\Lib\idlelib\idle.pyw -n
And launch the IDLE by the shortcut,type yr code and enjoy!FYI.
回答9:
How to fix this in Python 3.4.3:
>>> help(turtle.bye) Help on function bye in module turtle: bye() Shut the turtlegraphics window. Example: >>> bye()
回答10:
when using turtle.done(), the first time will work, but the second time not.
to solve this:
turtle.done()
try:
turtle.bye()
except turtle.Terminator:
pass
from here Problems with running turtle programs in Spyder
来源:https://stackoverflow.com/questions/7217405/turtle-graphics-not-responding