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

如何用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:43:25