如何让python生成随机大小?

时间:2018-02-12 23:58:39

标签: python random turtle-graphics

我需要让我的python代码随机抽取不同大小的星星。我已经尝试过我所知道的每一种方法,但无法弄明白......仍然试图完全理解循环。

import turtle
import random

for n in range(60):
    turtle.penup()
    turtle.goto(random.randint(-400, 400), random.randint(-400, 400))
    turtle.pendown()

    red_amount   = random.randint( 0,  100) / 100.0
    blue_amount  = random.randint(0 , 100) / 100.0
    green_amount = random.randint( 0,  100) / 100.0
    turtle.pencolor((red_amount, green_amount, blue_amount))

    turtle.pensize(random.randint(1, 10))

    for i in range(6):
        turtle.begin_fill()
        turtle.forward(50)
        turtle.right(144)
        turtle.end_fill()

它目前所做的只是相同尺寸的绘制星星。

1 个答案:

答案 0 :(得分:3)

您已经添加了代码来随机化颜色,起始位置和笔宽,但没有可以改变星星的大小。大小由此声明控制:

turtle.forward(50)

但是你不想简单地用随机模块的另一个电话取代50,因为你的星星会不规则地出现。您需要在循环之前计算随机大小,然后在循环中的forward()调用中使用该大小:

import turtle
import random

for n in range(60):
    turtle.penup()
    turtle.goto(random.randint(-400, 400), random.randint(-400, 400))
    turtle.pendown()

    red_amount = random.random()
    blue_amount = random.random()
    green_amount = random.random()
    turtle.color(red_amount, green_amount, blue_amount)

    turtle.pensize(random.randint(1, 10))

    size = random.randint(25, 100)

    turtle.begin_fill()

    for i in range(5):
        turtle.forward(size)
        turtle.right(144)

    turtle.end_fill()

turtle.done()

我在访问代码时也对代码进行了一些样式更改。