Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 海龟图形没有响应_Python_Windows 7_Turtle Graphics - Fatal编程技术网

Python 海龟图形没有响应

Python 海龟图形没有响应,python,windows-7,turtle-graphics,Python,Windows 7,Turtle Graphics,我正在用Python中的turtle包创建图表,它在某种程度上是成功的,除了一个问题。一旦turtle生成代码中的图表,它会导致程序说“没有响应”,最终我不得不结束任务。我正在使用Windows7 你们有没有人经历过这种情况,或者知道其根本原因?我尝试完全重新安装Python,但这似乎没有影响问题 下面是一些使其无法响应的示例代码: import turtle from turtle import forward, right, left forward(50) 它有一些空闲的问题。如果从p

我正在用Python中的turtle包创建图表,它在某种程度上是成功的,除了一个问题。一旦turtle生成代码中的图表,它会导致程序说“没有响应”,最终我不得不结束任务。我正在使用Windows7

你们有没有人经历过这种情况,或者知道其根本原因?我尝试完全重新安装Python,但这似乎没有影响问题

下面是一些使其无法响应的示例代码:

import turtle
from turtle import forward, right, left

forward(50)

它有一些空闲的问题。如果从python命令行运行,它将工作

只需在末尾添加对exitonclick的调用。Turtle类是使用Tkinter实现的,并且
exitonclick()
调用
mainloop()
,这将保持Turtle窗口打开,直到您单击画布中的任何位置。因此,一个简单的程序如下所示:

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

我也遇到了同样的问题(我也在Win7上,然后在WinXP上遇到了同样的问题),我刚刚解决了这个问题

完成后必须说
turtle.done()

现在我知道了这一点,这就更有意义了,因为Python不知道海龟已经完成了,它可能正在等待海龟的另一个命令

以下是我假设您正在使用的库的文档(在Python 2.7中)。我就是这么想出来的。上面说的是Python2.7,但这也适用于Python2.5。

希望这有助于(您或其他阅读本文的人),

Alex

我曾经遇到过你的问题,然后我尝试为IDLE创建一个快捷方式,如下所示(不要忘记“-n”):

target:D:\Python27\Lib\idlelib\idle.pyw-n


并通过快捷方式启动IDLE,键入yr代码并享受!仅供参考。

添加一个
mainloop()
exitonclick()
done()
或一些显示python希望退出turtle窗口的内容

我在空闲状态下尝试了该代码,效果非常好。你们有旧的/较慢的机器吗?虽然我不认为这是问题所在。尝试在末尾添加一行:

exitonclick()
这可能是因为乌龟似乎有点喜怒无常。此外,如果您找到了有助于或解决问题的答案,请确保向上投票并接受答案(问题旁边的箭头图标),否则问题将显示为未解决,您将继续获得答案


-Harry

在代码末尾添加以下行:

等待用户()


那应该能解决你的问题

我使用的是python 3.6.0,遇到了同样的问题。代码块后的
turtle.done()
可以防止turtle图形窗口变得无响应

import turtle 

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

turtle.done() # <------------
导入海龟
对于范围(5)内的uu:
乌龟前进(100)
乌龟。右(360/5)
turtle.done()#使用turtle.done()时,第一次有效,但第二次无效

要解决这个问题:

turtle.done()
try:
    turtle.bye()   
except turtle.Terminator:
    pass
从这里

我认为关闭turtle程序的诀窍是重命名“turtle”模块并将其存储为新对象,然后调用.done()方法或.exitonclick()方法,例如:

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()
或者,类似于:

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()
简单地单独导入“海龟”模块将不起作用。使用“从海龟导入*”通配符。然后,您就可以使用forward()或left()等调用函数,而不必使用任何前缀或“object_name.forward()”。只要使用简单的done()或exitonclick()命令完成代码,它就可以工作:

from turtle import *

forward(100)
shape('turtle')
right(90)
forward(100)
right(90)
forward(100)
right(90)
forward(100)
done()

当我面对同样的问题时,我自己测试了很多关于这个问题的东西

因此,我在搜索了大量资源后发现:

NB.当单击海龟图形窗口上的时,windows用户会出现此问题

首先,我发现spyder环境非常有用

第二,这一行很好:

Turtle.bye()
这将结束执行,而无需单击

当然,任何人都需要看到窗口上发生了什么,因此我建议添加以下内容:

import time
import turtle

<your code on turtle>

time.sleep(5)
Turtle.bye() 
导入时间
进口海龟
时间。睡眠(5)
乌龟,再见

记住用大写字母t编写Turtle。

更好的方法是,尝试找到一个小但完整的代码子集,它会导致相同的问题。如果我执行任何命令,它会导致Turtle不响应。我在我的原始帖子中添加了一些代码。你是在空闲状态下运行的吗?哦,我明白你的意思,是的,我是在空闲状态下运行的。我单击“用空闲编辑它”,然后按F5运行脚本。我通过命令行运行了它,它运行得很好。IDLE怎么了?完全同意。。。如果您希望与海龟进行交互式会话,则上述响应有效。太棒了,哇,我从来不知道。我想我必须制作一个屏幕变量,并在最后使其成为mainloop或其他什么东西,我既不擅长也懒得这么做。这是一段有效解决问题的单行代码。真有帮助!谢谢,我也面临同样的问题。这不是一个turtle.py、Python或tkinter命令。这看起来像是一个沼泽的TurtleWorld命令,在这里不适用。