Challenge type: Turtle Challenges · Difficulty: ★★★★☆ Tricky · Language: Python
Real programmers read code and imagine what it will do. That’s called tracing. Have a go!

import turtle
t = turtle.Turtle()
t.speed(0)
colours = ["seagreen", "mediumpurple", "limegreen"]
def shape(size):
for side in range(6):
t.forward(size)
t.left(60)
for i in range(10):
t.pencolor(colours[i % 3])
shape(60)
t.left(36)
t.hideturtle()
turtle.done()
Think about it
- What shape does the
shapefunction draw? - How many of those shapes will you see?
- How many lines does the turtle draw altogether?
Need a hint?
Read the loop first. How many times does it repeat, and what does the turtle do each time? Draw it on paper one step at a time, turning your pencil like the turtle turns.
Grown-ups: This code runs in IDLE, the editor that comes with Python. Open a new file, paste the code, save it (any name except turtle.py) and press F5. A window opens and the turtle draws.
For teachers and grown-ups
Skills practised: Reading code, tracing loops, and connecting angles and shapes.
The big idea: Reading code and predicting what it does (tracing) is as important as writing it.
Questions to ask:
- How many times does the loop repeat?
- How far does the turtle turn altogether?
- Which single number would you change to make a different shape?
Take it further: Children sketch their prediction first, run the code in IDLE, then change one value and predict again.
