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

如何随机调用存储的turtle-graphics函数生成随机路径

问题根因

  • 你定义moves、turns列表时直接写了pen.forward(30)这类带参数的方法调用,代码执行到列表定义行时就会立即执行这四个turtle操作,将方法返回的None值存入列表,后续循环中random.choice只是取出了无意义的None,不会执行任何路径生成逻辑。

修复方案

把列表中存储的内容改为可调用的函数对象,循环取出后再执行调用即可,修改后的完整代码如下:

from turtle import Turtle
from turtle import Screen
import random

pen = Turtle()
pen.pensize(8)
pen.speed(10)
window = Screen()
window.colormode(255)

# 用lambda包装方法调用,存储可调用对象而非执行结果
moves = [lambda: pen.forward(30), lambda: pen.backward(30)]
turns = [lambda: pen.right(90), lambda: pen.left(90)]

is_true = True

while is_true:
    pen.color(random.randint(0,255),random.randint(0,255),random.randint(0,255))
    # 取出可调用对象后加()执行
    random.choice(turns)()
    random.choice(moves)()

window.exitonclick()

如果不想用lambda语法,也可以导入functools.partial实现相同效果:

from functools import partial
moves = [partial(pen.forward, 30), partial(pen.backward, 30)]
turns = [partial(pen.right, 90), partial(pen.left, 90)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 07:36:04