问题描述
我是新来的,还在学校所以很抱歉,如果这很简单,但我似乎无法让乌龟在 pycharm 或任何其他 IDE 中工作。如果有人有任何信息,请告诉我。
我的代码:
#Super basic code to test turtle in pycharm
import turtle
wn = turtle.Screen()
yertle = turtle.Turtle()
wn.exitonclick()
yertle.forward(100)
yertle.left(120)
yertle.forward(100)
窗口关闭后出错:
Traceback (most recent call last):
File "C:\Users\Tom\PycharmProjects\pythonProject\main.py",line 6,in <module>
yertle.forward(100)
File "C:\Program Files\python39\lib\turtle.py",line 1638,in forward
self._go(distance)
File "C:\Program Files\python39\lib\turtle.py",line 1606,in _go
self._goto(ende)
File "C:\Program Files\python39\lib\turtle.py",line 3159,in _goto
screen._pointlist(self.currentLineItem),File "C:\Program Files\python39\lib\turtle.py",line 756,in _pointlist
cl = self.cv.coords(item)
File "<string>",line 1,in coords
File "C:\Program Files\python39\lib\tkinter\__init__.py",line 2762,in coords
self.tk.call((self._w,'coords') + args))]
_tkinter.TclError: invalid command name ".!canvas"
解决方法
问题是当你调用 turtle.exitonclick()
方法时,它告诉乌龟
嘿,程序结束了,是时候让用户点击关闭窗口了。
现在,您会收到错误消息,因为在窗口关闭后,程序还有一些海龟命令要执行,而这些命令需要一个海龟窗口才能运行。
修复很简单,将 wn.exitonclick()
调用重新定位到代码的底部,在那里您确定程序已经结束:
import turtle
wn = turtle.Screen()
yertle = turtle.Turtle()
yertle.forward(100)
yertle.left(120)
yertle.forward(100)
wn.exitonclick()
您需要将 wn.exitonclick()
下移到脚本的末尾。该调用在窗口关闭之前不会返回,因此您对 yertle
的三个命令正在执行,但为时已晚。