Python Puzzler #1501

Python Puzzler 1501 card

Challenge type: Python Puzzlers  ·  Difficulty: ★★★★☆ Tricky  ·  Topic: remainders

Read this Python program carefully. Don’t run it yet! Can you work out exactly what it prints?

Python puzzler 1501 code
What does it print?
for number in range(1, 11):
    if number % 5 == 0:
        print(number)

Choose an answer

ChoiceOutput
A
1
6
B
5
10
C
5
10
15
D
5
Need a hint?

Pretend you are the computer. Go through the program one line at a time, and write down every variable’s value on paper as it changes. Programmers call this a trace.

Grown-ups: Reading code and predicting what it does is a key programming skill. Once your child has chosen an answer, run the code in IDLE together to check.

For teachers and grown-ups

Skills practised: Code reading, tracing variables, and understanding Python syntax.

The big idea: Predicting a program's output before running it builds a solid mental model of how code works.

Questions to ask:

  • What is the value of each variable after every line?
  • Which line decides the output?
  • What small change would make it print something different?

Take it further: Children use a trace table on paper for the code, then run it in IDLE to check, and change one value to make a new puzzle for a friend.