【问题标题】:Python turtle invalid command (From Think Python book)Python 乌龟无效命令(来自 Think Python 书)
【发布时间】:2016-05-16 18:40:39
【问题描述】:

我正在尝试按照“Think Python”一书中的练习进行操作,但在尝试让 turtle 工作时遇到了问题。 Here is the exercise I'm on. (4.1)

他们希望我执行的代码如下所示:

import turtle
bob = turtle.Turtle()
print(bob)
turtle.mainloop()

bob.fd(100)
bob.lt(90)
bob.fd(100)

但是当我执行它时,乌龟并没有移动,当我关闭窗口时出现以下错误:

Traceback (most recent call last):
    File "C:\Users\Phil\PycharmProjects\untitled\mypolygon.py", line 6, in <module>
        bob.fd(100)
    File "C:\Python\3.5\lib\turtle.py", line 1637, in forward
        self._go(distance)
    File "C:\Python\3.5\lib\turtle.py", line 1605, in _go
        self._goto(ende)
    File "C:\Python\3.5\lib\turtle.py", line 3158, in _goto
        screen._pointlist(self.currentLineItem),
    File "C:\Python\3.5\lib\turtle.py", line 755, in _pointlist
        cl = self.cv.coords(item)
    File "<string>", line 1, in coords
    File "C:\Python\3.5\lib\tkinter\__init__.py", line 2308, in coords
        self.tk.call((self._w, 'coords') + args))]
_tkinter.TclError: invalid command name ".1395635997272"

我不确定调试器在说什么,在我弄清楚哪里出错之前我无法继续。任何帮助将不胜感激。

【问题讨论】:

    标签: python turtle-graphics


    【解决方案1】:

    bob.fd(100) 行(以及所有后续行)永远不会到达,因为 turtle.mainloop() 调用会启动一个循环(顾名思义)。

    更改您的代码,使其显示为:

    import turtle
    bob = turtle.Turtle()
    print(bob)
    
    bob.fd(100)
    bob.lt(90)
    bob.fd(100)
    

    一切都应该正常。

    (由于您没有在程序中处理任何事件,我建议您暂时不要调用turtle.mainloop();如果您确实想按照书中的示例进行操作,请确保按照上面的说明进行操作:“要绘制一个直角,将这些行添加到程序中(在创建 bob 和调用 mainloop 之前”)。

    hereherehere也有类似的问题。

    【讨论】:

    • 这正是问题所在。谢谢!
    • 干杯!如果它解决了问题,你可以接受我的回答:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2013-12-17
    • 1970-01-01
    相关资源
    最近更新 更多