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

Python3.10使用turtle库调用penup方法报turtle.Terminator错误如何解决

错误成因

该报错由代码执行顺序错误直接导致:

  • turtle.mainloop() 是turtle库的阻塞型事件循环接口,调用后会持续占用主线程维持绘图窗口运行,只有当用户手动关闭绘图窗口后,才会继续执行该方法之后的代码
  • 你将mainloop()放在了自定义函数定义、循环绘图逻辑的前方,当窗口被关闭后,后续的绘图代码才会触发执行,但此时turtle绘图实例已经被回收销毁,调用任何turtle相关操作接口(penup、sety等)都会抛出 turtle.Terminator 异常。你之前修改窗口标题时出现的同类报错,也大概率是因为相关代码被放在了mainloop()之后。
修复方案

将turtle.mainloop()移动到所有绘图逻辑的末尾即可,同时建议修改函数参数名避免和导入的turtle模块重名产生命名冲突,修正后的完整代码如下:

import turtle

circleRadius = 100

def drawTarget(t, radius):
    t.penup()
    t.sety(-radius)
    t.pendown()
    t.circle(radius, steps=90)

turtle.tracer(False)
turtle.hideturtle()

for radius in range(circleRadius, 500, circleRadius):
    drawTarget(turtle, radius)

turtle.tracer(True)
# mainloop必须放在所有绘图逻辑的最后执行
turtle.mainloop()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:09:01