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

Turtle模块运行报RecursionError:调用Python对象时超出最大递归深度如何解决

错误原因
  • 核心触发递归错误的原因是random_color函数逻辑错误:函数生成完rgb颜色元组后,没有返回生成好的颜色,反而递归调用了自身,且没有设置任何终止递归的条件。程序会无限循环调用该函数,直到超出Python默认的递归深度限制,最终抛出RecursionError。
  • 代码还存在额外的前置错误:你没有导入turtle模块并命名为t,直接使用t.colormode、t.Turtle、t.Screen会先抛出变量t未定义的NameError。
修复方案
  1. 修改random_color函数的返回语句,将return random_color()改为返回已经生成好的颜色元组color。
  2. 调整模块导入逻辑,补全turtle的别名导入即可。
修复后完整代码
import turtle as t
from random import randint, choice

t.colormode(255)
tim = t.Turtle()

def random_color():
    r = randint(1, 255)
    g = randint(1, 255)
    b = randint(1, 255)
    color = (r, g, b)
    # 修正返回值,不再递归调用自身
    return color

directions = [0, 90, 180, 270]
tim.pensize(15)
tim.speed("fast")

for _ in range(200):
    tim.color(random_color())
    tim.forward(30)
    tim.setheading(choice(directions))

screen = t.Screen()
screen.exitonclick()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:24:04