使用PythonWin学习Python和编码的简单Turtle图形脚本。该脚本只能从PythonWin执行一次。在随后的尝试中,脚本挂在创建乌龟类实例x = turtle.Turtle()的行上。我需要重新启动PythonWin才能运行脚本。 但是,同一脚本可以从IDLE中多次执行。
使用Python 3.7.2(64位)和PythonWin 3.7(64位)
这是代码
import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")
tess = turtle.Turtle() --->hangs here
dist = 5
tess.up() # this is new
for pas in range(30): # start with size = 5 and grow by 2
tess.stamp() # leave an impression on the canvas
tess.forward(dist) # move tess along
tess.right(24) # and turn her
dist = dist + 2
wn.exitonclick()
在调试器中运行脚本并得到这些错误
>>> Unhandled exception while debugging...
Traceback (most recent call last):
File "C:\Users\Drew\AppData\Local\Programs\Python\Python37\lib\turtle.py", line 2557, in __init__
self._update()
File "C:\Users\Drew\AppData\Local\Programs\Python\Python37\lib\turtle.py", line 2660, in _update
self._update_data()
File "C:\Users\Drew\AppData\Local\Programs\Python\Python37\lib\turtle.py", line 2646, in _update_data
self.screen._incrementudc()
File "C:\Users\Drew\AppData\Local\Programs\Python\Python37\lib\turtle.py", line 1292, in _incrementudc
raise Terminator
turtle.Terminator
答案 0 :(得分:0)
一些建议:完全删除此行:
wn.exitonclick()
或,如果这不能使情况变得更好,请替换为:
wn.mainloop()
通常,在正在运行的Python映像中,turtle是 not 可重入的。重新启动后失败,并显示Terminator
。乌龟退出后,就完成了。但是某些交互式环境知道这一点,因此它们专门处理mainloop()
调用。或不。您的环境可能未设置为处理exitonclick
,这是一个mainloop()
的调用,并结合了一个调用turtle.bye()
的事件处理程序。