如何用Python生成随机尺寸,实现星星的随机大小绘制?
解决Python绘制随机大小星星的问题
嘿,我完全懂你现在的困扰!刚接触循环的时候,确实容易卡在“怎么让每次循环的内容不一样”这个点上,咱们一步步来搞定随机大小星星的绘制问题~
假设你用的是Python自带的turtle库(新手画图形超合适的工具),我给你写个完整的示例代码,然后咱们拆解一下关键部分:
import turtle import random # 定义画星星的函数,接受大小参数 def draw_star(size): turtle.pendown() for _ in range(5): turtle.forward(size) turtle.right(144) # 五角星的标准转角是144度 turtle.penup() # 初始化画笔和窗口 turtle.speed(0) # 设置最快绘制速度 turtle.bgcolor("black") turtle.color("yellow") # 循环绘制20个随机大小的星星(数量可以自己改) for _ in range(20): # 生成随机坐标范围(可根据窗口大小调整) x = random.randint(-300, 300) y = random.randint(-200, 200) # 生成随机星星大小(这里设置10到50的范围,可自定义) star_size = random.randint(10, 50) # 移动到随机位置(抬笔避免留下轨迹) turtle.penup() turtle.goto(x, y) # 调用画星函数,传入本次循环的随机大小 draw_star(star_size) turtle.hideturtle() turtle.done()
核心逻辑拆解(帮你理解循环和随机的结合):
- 封装画星函数:把画星星的固定逻辑放到
draw_star(size)里,这样每次调用只需要传不同的size参数,就能画出不同大小的星星,避免重复写冗余代码。 - 随机值要放在循环内:这是你之前可能忽略的关键——要让每次循环的星星大小不一样,必须在每次循环时重新生成随机大小,而不是在循环外只生成一次。比如上面的
star_size = random.randint(10, 50)写在for循环里面,所以每一轮循环都会得到一个全新的随机数。 - 循环的本质是重复执行差异化操作:
for _ in range(20)表示要重复20次代码块内容,每一次执行都会完成“找新位置→生成新大小→画星星”的流程,最终得到一堆大小、位置都随机的星星。
小拓展提示:
- 如果你用的是其他绘图库(比如
pygame),思路完全一致:每次循环生成随机尺寸参数,再用这个参数绘制图形。 - 可以自己调整
random.randint()里的数值,比如把星星大小范围改成(5, 60),就能得到更大或更小的星星啦!
刚开始学循环的时候,多试试把变量放在循环内部和外部,对比结果差异,很快就能摸清规律啦 😊
内容的提问来源于stack exchange,提问作者AySeven
相关产品推荐
相关产品推荐

