[Python] Need help making every petal on a flower a different color

Discussão em 'Python' iniciado por Stack, Julho 12, 2025.

  1. Stack

    Stack Membro Participativo

    How do make every petal on a flower a different color?

    I tried doing this but it resulted in every flower petal being the same color. I'm not sure how I can make every flower petal a different color.

    import turtle
    import random

    not_done = False # guarantees the flower is completely drawn and won't be affected by subsequent button clicks

    def set_up():
    """ sets up the screen with a title and adds the mouse listener"""
    wn = turtle.Screen()
    wn.bgcolor("pink")
    wn.title("Python Turtle Graphics: Flower Garden")

    turtle.delay(0)
    turtle.penup()
    turtle.setpos(-200, 250) # write a large title
    turtle.color('green')
    turtle.write('Flower Garden', font = ('Courier', 40, 'bold'))
    turtle.onscreenclick(draw_flower)
    turtle.hideturtle()

    leaf = turtle.Turtle()
    stem = turtle.Turtle()

    def draw_leaf(fill, r, g, b):
    """ draws 1 leaf and fills it if fill is true"""
    # todo
    leaf.hideturtle()
    turtle.colormode(255)

    for _ in range(8):
    if fill:
    leaf.begin_fill()
    leaf.fillcolor(r, g, b)

    for _ in range(45):
    leaf.fd(1)
    leaf.left(2)

    leaf.lt(90)

    for _ in range(45):
    leaf.fd(1)
    leaf.left(2)

    if fill:
    leaf.end_fill()

    def draw_flower(x, y):
    """ draws a flower at (x,y)"""
    global not_done
    if not_done: # function does not execute if still drawing
    return
    not_done = True
    # todo
    stem.penup()
    stem.setposition(x, y)
    stem.width(5)
    stem.pendown()
    stem.hideturtle()
    stem.right(90)
    stem.forward(75)
    stem.seth(0)


    fill = random.randint(0, 1)
    r = random.randrange(256)
    g = random.randrange(256)
    b = random.randrange(256)

    for _ in range(8):
    leaf.penup()
    leaf.setpos(x, y)
    leaf.pendown()
    draw_leaf(fill, r, g, b)
    leaf.rt(45)


    not_done = False # finished drawing the flower - don't add any code below

    def main():
    set_up()
    turtle.shape('turtle')
    turtle.speed(0)
    turtle.done()

    main()


    I was told I could use a loop however I'm not able to fully understand what that would look like.

    Continue reading...

Compartilhe esta Página