1

I'm trying to create 3 equally smaller concentric shapes (triangles) and making each one a different color using a for loop (using turtle graphics). So far, I can make the shapes, but I am having extreme difficulty in filling them with different colors. The code below is what I have done so far. Can someone help with the coloring issue?

lengths = [300, 200, 100]
inner = ['red', 'dark blue', 'lime green']

for colouring in inner:
  begin_fill()
  fillcolor(colouring)

for tri_length in lengths:
    penup()
    right(90)
    forward(tri_length * 0.57)
    pendown()
    left(150)
    forward(tri_length)
    left(120)
    forward(tri_length)
    left(120)
    forward(tri_length)
    penup()
    home()
hideturtle()
done()
Life is complex
  • 15,374
  • 5
  • 29
  • 58
Harry76
  • 13
  • 2

1 Answers1

-1

All file:

import turtle

lengths = [300, 200, 100]
inner = ['red', 'dark blue', 'lime green']


for i in range(0, len(lengths)):
    turtle.begin_fill()
    turtle.color(inner[i])

    turtle.penup()
    turtle.right(90)
    turtle.forward(lengths[i] * 0.57)
    turtle.pendown()
    turtle.left(150)
    turtle.forward(lengths[i])
    turtle.left(120)
    turtle.forward(lengths[i])
    turtle.left(120)
    turtle.forward(lengths[i])
    turtle.penup()
    turtle.home()

turtle.hideturtle()
turtle.done()

Editted.

import turtle

lengths = [300, 200, 100]
inner = ['red', 'dark blue', 'lime green']


for i, j in zip(lengths, inner):
    turtle.begin_fill()
    turtle.color(j)

    turtle.penup()
    turtle.right(90)
    turtle.forward(i * 0.57)
    turtle.pendown()
    turtle.left(150)
    turtle.forward(i)
    turtle.left(120)
    turtle.forward(i)
    turtle.left(120)
    turtle.forward(i)
    turtle.penup()
    turtle.home()

turtle.hideturtle()
turtle.done()
Camile
  • 107
  • 5
  • `for i in range(len(someseq)): someseq[i]` is an antipattern in Python. Python offers direct iteration, parallel iteration (via `zip`) and iteration with index (via `enumerate`); in 99.9% of cases, you want one of those three options, not looping over a `range`. – ShadowRanger Mar 13 '19 at 13:07