Python Turtle绘制随机颜色正方形问题:颜色未随机生成
问题解决:Turtle绘制随机填充色正方形
你的问题出在两个核心点:
- 颜色生成代码写在循环外,仅执行一次,导致所有正方形共用同一组颜色值
begin_fill()和end_fill()的位置错误,当前每绘制一条边就触发一次填充,逻辑完全混乱
修正方案:
- 将随机颜色生成代码移到外层for循环内部,确保每次绘制新正方形前都会生成一组全新的RGB颜色值
- 调整填充逻辑:
begin_fill()放在绘制正方形的嵌套循环之前,end_fill()放在嵌套循环之后,保证整个正方形被完整填充
修正后的代码:
import random import turtle window = turtle.Screen() bob = turtle.Turtle() window.setup(1000, 1000) window.colormode(255) for i in range(10): # 每个正方形生成前重新生成随机RGB颜色 red = random.randint(0, 255) green = random.randint(0, 255) blue = random.randint(0, 255) box_size = random.randint(50, 100) x = random.randint(-250, 250) y = random.randint(-250, 250) # 先移动到目标位置再绘制 bob.penup() bob.goto(x, y) bob.pendown() bob.fillcolor(red, green, blue) bob.begin_fill() # 启动填充 for j in range(4): bob.forward(box_size) bob.left(90) bob.end_fill() # 完成当前正方形的填充
额外优化说明:
- 把
goto()操作移到绘制前,逻辑更顺畅:先定位,再开始绘制图形 - 移除了冗余的
from turtle import Turtle导入,已通过turtle.Turtle()创建实例,无需重复导入
内容的提问来源于stack exchange,提问作者Miles
相关产品推荐
相关产品推荐

