You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用turtle graphics绘制多边形报_tkinter.TclError: invalid command name ".!canvas"错

报错原因
  • 核心触发原因:代码执行完绘图逻辑后直接退出,没有维持turtle绘图窗口的运行,底层依赖的Tkinter画布资源被提前释放,后续尝试操作画布时就会抛出该无效命令错误
  • 额外逻辑错误:多边形转角计算逻辑错误,当前用了取模运算符%,实际需要用除法计算每个外角的角度,360度除以边数才是正多边形每次需要左转的角度,错误的角度计算会导致最终无法画出预期的正多边形
修复方法
  1. 修正角度计算代码,将angle = 360%n替换为angle = 360 / n
  2. 在代码的最后一行添加turtle.mainloop(),阻塞程序退出,维持绘图窗口和底层Tkinter资源的正常运行

修复后的完整代码如下:

import turtle
bob = turtle.Turtle()
def polygon(t,length,n):
    angle = 360 / n
    for i in range(n):
        t.fd(length)
        t.lt(angle)

polygon(bob,70,7)
turtle.mainloop()

内容的提问来源于stack exchange,提问作者Himasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:06:05