Reading Python Error Messages, for Kids

A Python error message already tells you what went wrong — this topic teaches how to actually read it.

  • 12 exercises
  • 4 lessons
  • Ages 10+
  • PRO

This topic is part of PRO — a one-time $49.99 purchase, no subscription. Topics 1–3 are free, start to finish, and the first level needs no account.

For parents & teachers

What this topic covers

Most beginner materials either hide error messages behind a friendlier paraphrase or leave children to decode a raw traceback with no guidance at all. The research on this specifically finds that rewriting error text has little effect on its own, while teaching a systematic procedure for using it does — a documented, replicated result. So this topic keeps the real Python traceback exactly as it appears, and teaches the habit of reading it: the last line first, where it names the exact problem, then the line number, which points at where the program broke rather than always at the original mistake.

The middle of the topic builds recognition of the exception types a learner meets most often — IndexError, KeyError, TypeError, ValueError, ZeroDivisionError — as fast pattern-matches rather than mysteries to re-derive from scratch each time, alongside the harder distinction between an error Python catches immediately (a broken syntax), one it catches while running (a real crash), and one it never catches at all: code that runs perfectly and produces a wrong answer, silently, with no traceback to point at anything.

That last category is where the topic's final procedure earns its place — read what happened (or notice nothing did), say what you expected, change one thing, run again. The one-thing-at-a-time step is deliberate: research on this finding also reports it is the step children skip under pressure, changing several things at once and losing the ability to tell which change actually mattered.

Built around a real misconception

The mistake this topic is built to fix

Common mistake

A child treats every crash as an unreadable wall of red text, or assumes a program with no error message must be correct.

Why the topic is built around it

Novice debugging strategies are documented as unsystematic, and error messages themselves are a barrier when there is no method for using them. The gap is not information — Python already supplies it — it is a missing procedure for reading and acting on it, which this topic teaches directly rather than assuming it develops on its own.

errors.pyPython 3
hoard = ["gold", "gems"]print(hoard[5])
OutputIndexError: list index out of range

Explain · Ask · Guided · Practice

The lessons, in order

Each lesson explains one idea in short steps, checks it landed with a question, walks through a guided first try, then leaves the child to practise on their own.

  1. The last line of a crash names the real problem — read it first, not last.

    • Explain
    • Ask
    • Guided 1 level
    • Practice 2 levels
  2. Recognise the common crash types by name, the way a symptom points to a diagnosis.

    • Explain
    • Ask
    • Guided 1 level
    • Practice 2 levels
  3. Three completely different kinds of wrong — and the hardest one leaves no error message at all.

    • Explain
    • Ask
    • Guided 1 level
    • Practice 2 levels
  4. Read it, say what you expected, change ONE thing, run again — the loop that actually works.

    • Explain
    • Ask
    • Guided 1 level
    • Challenge 2 levels

Lessons unlock in order within a topic, so nothing arrives before the idea it depends on. This topic is part of PRO — $49.99 unlocks it along with everything else.

Try it now

The very first level needs no account at all — see whether it clicks before signing up for anything.

Play the first level free