微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行turtle.py时出现问题,似乎无法让模块正常运行

如何解决运行turtle.py时出现问题,似乎无法让模块正常运行

我是新来的,还在学校所以很抱歉,如果这很简单,但我似乎无法让乌龟在 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 的三个命令正在执行,但为时已晚。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。