Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

How this course works

~20 min

This is the last page before you install anything, and it's about the course itself. It covers the two ways each idea is explained and what the exercises do with the code you type. It also says which parts of learning Python happen on your own computer rather than in the browser. Knowing this up front saves you from wondering, three chapters in, why a page never has a Run button.

Two explanations and your setup

Nearly every idea here is explained two ways, and you choose which one you see. Textbook is the exact version. It uses the proper words that Python programmers and the official Python manuals use. Plain English says all the same things for someone seeing them for the first time, using everyday words and explaining each new term the moment it shows up. It isn't a cut-down version; nothing is left out. Flip between the two with the switch at the top of each explanation, and the course remembers which one you picked.

Some steps depend on your computer, like how to open the typing window from the last page. Those steps come in tabs, one tab per option. Tell the course about your setup once, in the My setup panel on the course page. It asks two things. First, which operating system you use: Windows, macOS, or Linux. (The operating system is the main software that runs your computer.) Second, which editor you'll write Python in. An editor is the app where you type code. The choices are VS Code, PyCharm, JupyterLab or Colab, or a plain text editor plus the terminal, and Chapter 1 helps you choose. After that, every tabbed block opens on your choice.

Most ideas are explained twice, side by side. The Textbook lane is precise: it uses the correct terms and states each rule completely, the way Python's official documentation would. The Plain English lane makes the same claims for someone meeting the idea for the first time, in everyday words, and explains every term where it first appears. Neither lane is a summary of the other, and nothing is left out of either. A switch above each explanation flips between them, and your choice carries over as you move through the course.

Steps that differ by computer appear as tabs. You set the course's two tab groups once, under My setup on the course page (or in Settings). One is your operating system: Windows, macOS, or Linux. The other is your editor, the app you'll write Python in: VS Code, PyCharm, JupyterLab or Colab, or just the terminal with a plain text editor. Choosing a tab in any lesson changes that group everywhere. If a block doesn't offer your choice, it opens on its own first tab and leaves your setting alone.

Here's a taste of an editor-tabbed block. Each tab says, in a sentence, how you'll run a program once Chapter 1 has set that editor up.

VS Code is a free, general-purpose editor. Chapter 1 adds Microsoft's Python extension, which puts a Run triangle in the top corner of any open .py file. Clicking it types the python command into a terminal panel at the bottom of the window for you.

PyCharm is JetBrains' editor made for Python. A green Run arrow appears beside a file once it's open; clicking it starts the interpreter on that file and shows the output in a panel below.

JupyterLab (on your computer) and Google Colab (in your browser) work in cells: small boxes of code you run one at a time with Shift+Enter, each with its output underneath. This course's Colab lab notebooks open this way.

Any plain text editor plus a terminal works. You save the file, then type python hello.py in the folder that holds it. Every editor in the other tabs runs that same command for you behind its button.

Worked example

Setting up once

  1. 1

    Ana has a Windows laptop and wants to try VS Code. On the course page she opens My setup and picks Windows and VS Code.

  2. 2

    In Chapter 1, the install steps open straight on the Windows tab, and the "run your program" steps open on VS Code. She never hunts for her tab.

  3. 3

    Later she's curious about PyCharm and clicks its tab in a lesson. From then on, every editor tab in the course opens on PyCharm, because picking a tab anywhere updates the setting everywhere.

    one click in any lesson changes the whole group

  4. 4

    One block covers only the terminal and JupyterLab. It opens on its first tab, and Ana's PyCharm choice stays saved for the next block that has it.

Worked example

Reading both lanes on purpose

  1. 1

    Ben is on the first section of this chapter. He reads the Plain English explanation of the interpreter first: the cook reading a recipe card to a kitchen robot.

  2. 2

    It makes sense, so he flips the switch to Textbook. The same facts appear in the words the official manuals use: source code, interpreter, bytecode, processor.

    same claims, two registers

  3. 3

    He hasn't missed anything by starting in Plain English, and he hasn't skipped anything by reading Textbook second. He's now learned the idea once and its official vocabulary once.

  4. 4

    On the next page the switch is still on Textbook, because the course remembers his last choice. He flips back whenever a passage feels dense.

Which lane, or which tab?

Sort each feature: is it about the two explanation lanes, or about the tabs set under My setup?

Loading interactive…

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Correct answer

Also accepted:

Why

Why

The two lanes say the same thing in two registers: Textbook uses the manuals' exact words and Plain English explains each term as it appears, and you flip them with the switch above an explanation. Tabs hold steps that differ by computer or editor, and you set them once under My setup.

Check your understanding (counts toward your progress)

In VS Code or PyCharm, what does the Run button actually do?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

The editor is a front end. Behind its button is the ordinary interpreter.

It really runs the file and shows the output.

Your editor runs code on your own computer, not on the course's server.

Why

An editor's Run button types the same python command for you. The interpreter, not the editor, runs the program.

What would typing python hello.py in a terminal do?

Ben reads only the Plain English lane. Is he missing any facts the Textbook lane states?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

Plain English is a full translation, never a cut-down version.

Both lanes carry the same facts.

Examples sit outside both lanes and appear for everyone.

Why

Plain English says everything Textbook says, explained for a first-time reader. Switching to Textbook is useful for learning the official terms, not for finding missing facts.

Is Plain English a summary?

How does the Plain English lane differ from the Textbook lane?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

Nothing is left out. It's a full translation, not a summary.

Both lanes explain the same idea.

It's for anyone meeting the idea for the first time.

Why

Both lanes make the same claims. Textbook uses the manuals' exact terms; Plain English uses everyday words and explains each new term the moment it appears.

Do the two lanes ever disagree about the facts?

Your setting is Linux, but a block only has Windows and macOS tabs. What does it do?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

A block that lacks your choice doesn't overwrite it.

The block still shows its content, starting with its first tab.

It isn't an error; some steps don't differ for every system.

Why

A block missing your choice opens on its own first tab, and your saved Linux choice waits for the next block that has it.

Does a block without your choice change the saved setting?

Practice: Two explanations and your setup (5 problems · doesn’t affect your progress)

Which lane uses the exact terms Python's official documentation uses?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

Plain English explains terms in everyday words when they first appear.

Textbook uses them on purpose.

Terms are taught in the lessons.

Why

The Textbook lane is the precise one, using the official terms.

Textbook

What two things does My setup ask you?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

My setup is about your computer, not about you.

Chapter 1 checks the Python version; the lane is a switch on each explanation.

My setup never asks for account details.

Why

My setup records your operating system (Windows, macOS, or Linux) and your editor, so tabbed blocks open on your choice.

Your operating system and your editor

Kai uses a Mac but clicks the Windows tab in a lesson to compare. What happens to later operating-system tabs?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

A tab click anywhere updates the saved choice for that group.

Each block shows one tab at a time.

They work fine; they just follow his latest choice.

Why

Picking a tab in any lesson changes the setting everywhere, so he should click macOS again when he's done comparing.

They open on Windows until he picks macOS again

Which editor tab would you choose if you want to work with nothing but a plain text editor and typed commands?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

PyCharm is a full Python editor with its own Run button.

JupyterLab and Colab run code in notebook cells.

VS Code is a full editor with a Run button.

Why

The Terminal tab covers a plain editor plus typing python hello.py yourself, which is what every other editor's Run button does for you.

Terminal

Challenge: Ana's VS Code shows different output from running python hello.py in her terminal. What's the most likely reason?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

The editor's button runs an ordinary interpreter. If results differ, it's a different interpreter.

The terminal shows exactly what the interpreter printed.

Lanes change explanations, not program output.

Why

An editor's Run button runs a Python interpreter, just like the terminal. Different output usually means the two are pointed at different Pythons, which Chapter 1 shows how to check.

They're starting two different Python installations

Checks, practice, and code exercises

You'll meet two kinds of question set. A check sits in the middle of a lesson. It picks a few questions at random from a bigger pool, so coming back later gives you different ones. Checks are marked, and your results help the course decide what to show you again for review later.

A practice set comes at the end of a part of a lesson. It's a short ladder of four to six problems that always come in the same order. The first asks about the idea itself. Then comes an easy one, a normal one, one with a twist, and a last one that hides a trap. A problem labelled challenge goes a step beyond the examples. Practice isn't marked; it's there because reading about something and doing it are different skills. Every chapter also finishes with a review page of practice drawn from all its lessons.

The code questions come in four flavors. In predict the output, you read a program and write down exactly what it would show, line for line. In put the lines in order, you arrange mixed-up lines into the right order, and sometimes one line is a decoy that doesn't belong. In fill in the blanks, you type the part of a program that's been left out. In a bug hunt, you get a program with mistakes planted in it, and you're told how many. A mistake in a program is called a bug. Sometimes you just click the broken lines; other times you repair the code and press Check.

A check is a set of questions inside a lesson. It draws a few at random from a larger bank, so a revisit shows a different mix, and your answers are graded and feed your progress and review schedule. A practice set is a fixed ladder of four to six problems, in the same order every time: a question about the idea, then a basic case, a typical one, a variation, and a problem with a catch in it. Problems marked challenge stretch past the section's examples. Practice is ungraded. Each chapter ends with a review page of practice drawn from all of its sections.

Code exercises come in four kinds. Predict the output: read a program and type the exact text it prints (or, when it stops with an error, the text that appears before it stops). Put the lines in order: arrange shuffled lines into a working program or a correct sequence of commands, sometimes with a decoy line to leave out. Fill in the blanks: type the missing piece of a program. Bug hunt: a short program with a stated number of planted mistakes, called bugs. In spot mode you click the broken lines; in fix mode you edit the code in place and press Check.

Try two now. They use only what this chapter's first section showed you: print("...") shows the text between the quotes on a line of its own, and the lines run top to bottom.

Predict before you peek

Type exactly what this program prints, one line per line. The answer was produced by the real Python 3.14 interpreter.

Loading interactive…

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Correct answer

Also accepted:

Why

Why

Three print lines run top to bottom, each showing its quoted text without the quotes and then starting a new line.

Put the countdown in order

Arrange the lines so the program prints 3, then 2, then 1, then Liftoff! One line is a decoy.

Loading interactive…

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Correct answer

Also accepted:

Why

Why

Lines run top to bottom, so the countdown goes 3, 2, 1, then Liftoff!. The decoy is missing its closing round bracket: a syntax error, which would stop Python before even 3 printed.

Worked example

Working a bug hunt in spot mode

  1. 1

    A bug hunt says: this program has 1 mistake. Click the broken line.

    print("Level 1 complete")
    print("Score: 450)
    print("Loading level 2")
    
      File "main.py", line 2
        print("Score: 450)
              ^
    SyntaxError: unterminated string literal (detected at line 2)
    
  2. 2

    The task gives the number of bugs, so you know when to stop looking. Check each line against what a correct one looks like: the word print, round brackets that open and close, and text inside a pair of double quotes.

  3. 3

    Line 2 opens a quote before Score and never closes it. Python's grammar check would fail there and nothing would run, as the report under the code shows. Click line 2.

    one click per bug, then press Check

  4. 4

    In fix mode, the same program would open in an editor. You'd add the missing " after 450 and press Check, and the page would tell you whether the bug is gone and whether the code is still well-formed Python.

Worked example

Predicting a program that stops early

  1. 1

    A predict-the-output question shows this program and says it ends in a NameError. What do you type?

    print("Saving")
    print("Saved")
    prnt("Closing")
    
    Saving
    Saved
    
  2. 2

    First, the grammar: every quote and bracket has a partner, so Python starts running. That rules out "nothing at all".

  3. 3

    Lines 1 and 2 are ordinary print lines, so Saving and Saved appear.

  4. 4

    Line 3 says prnt, which Python can't find, so the program stops there. You type the two lines that really appeared, Saving and Saved, and nothing for line 3.

    type what appeared, not what the author hoped for

Check your understanding (counts toward your progress)

Put a practice ladder's rungs in the order they come.

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Why

A practice ladder runs from understanding, to a basic case, a typical one, a variation, and finally a problem with a catch.

Correct answer

Also accepted:

Why

Ladders climb: easy first, the trap last.

Fill the blank so the program prints Lights on.

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Why

print shows exactly the text between the quotes, so the blank is Lights on.

Correct answer

Also accepted:

Why

Type only what goes between the quotes.

A predict-the-output program stops with an error after printing two lines. What do you type?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

The program never got that far, so those lines never appeared.

The task asks for the printed output, which is the lines that came before the stop.

They're fair questions: the answer is what really appeared.

Why

Predict-the-output asks for exactly what appears. When a program stops early, that's the lines printed before the stop.

What really appeared on the screen?

Bug hunt, fix mode: this program has 1 mistake. Edit it so both lines print, then press Check.

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Why

The text Ready in 10 minutes needs a closing " before the ). With it, the file follows Python's grammar and both lines print.

Correct answer

Also accepted:

Why

Where does the quoted text end?

Practice: Checks, practice, and code exercises (5 problems · doesn’t affect your progress)

Which kind of question set always shows the same problems in the same order?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

A check picks at random from a bank.

Only one of them is fixed.

Practice sets are fixed on purpose.

Why

Practice is a fixed ladder; checks draw a random few from a bank.

A practice set

Type exactly what this prints.

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Why

Two print lines, two lines of output.

Correct answer

Also accepted:

Why

Check ⏎ Practice

Put the lines in order so the program prints the ladder's rungs: basic, typical, variation, gotcha.

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Why

Top to bottom: the first line printed comes first in the program.

Correct answer

Also accepted:

Why

D → A → C → B

Fill the blank so the program's middle line of output is Level 2.

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Why

The middle print shows the text in its quotes, so the blank is Level 2.

Correct answer

Also accepted:

Why

Level 2

This program stops with an error. Type what appears before it stops.

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Why

The grammar is fine, so three lines run. pirnt isn't a name Python knows, so the program stops on line 4. Neither Sold out nor Doors close appears.

Correct answer

Also accepted:

Why

Is every line's grammar fine? Then which name can't Python find?

Ticket 1 ⏎ Ticket 2 ⏎ Ticket 3

What the page checks, and what your machine runs

When you type code into a question on this site, the site never runs your code. Instead, a Python parser on the course's server reads it. A parser is a program that reads code the way a grammar checker reads a sentence. It can tell whether each bracket has a partner, where each line ends, and whether you used the piece the question asked for. What it can't tell is what your code would do, just as a grammar checker can't tell whether a sentence is true. That's why you'll never see a Run button on a lesson page.

So where do the outputs on the pages come from? Before a page is published, the course's build takes every example program and runs it with the real Python interpreter, version 3.14. Then it compares what the page shows with what really appeared, letter for letter, including every error report. If anything differs, the page isn't published. No output here was typed in by a person.

Running your own code happens on your own computer, from Chapter 1 on. Starting in Chapter 2, every chapter ends with a project. That's a ready-made Python folder you download and finish. It arrives with tests: small extra programs someone already wrote to check whether your code works, and one command runs them all.

Some chapters also have a lab. A lab is a notebook: a page of explanations with small boxes of code in it, which you run one box at a time. It opens in Google Colab. Colab is a free website that runs Python for you on Google's computers, so you can experiment with nothing installed. Its Python is one version older than this course's (3.13 right now), so the labs steer clear of the handful of features that are brand new in 3.14.

Code you type into a lesson page is never run. It's sent to the course's server and read by a Python parser. A parser is a program that works out the structure of source code without carrying out any of it: which brackets pair up, where each line ends, which names are used. That's how a check decides whether your answer is well-formed Python and whether it uses what the task asked for. It also sets the limit: a parser knows the shape of your code, not what it would do. It can't tell what a program would print, or whether it would stop with an error partway through. That's why there's no Run button on a page, no >>> prompt in the browser, and no "try it" box.

So everything a page shows Python doing was produced ahead of time: the output under a snippet, every error report, and the answer key of each predict-the-output question. When the course is built, each example is run by the real Python 3.14 interpreter and its output is compared with the page character for character; the build fails if any page disagrees. Nothing on a page was typed in by hand.

Running is your machine's job, starting in Chapter 1. From Chapter 2 on, each chapter ends in a project: a ready-made Python project folder you download, with tests already written. Tests are small extra programs that check whether your code does its job, and one command runs them all. Some chapters also have a lab: a notebook (a document that mixes text with cells of code you run one at a time) that opens in Google Colab, a free website that runs notebooks on Google's computers. Colab's Python is a version behind (3.13 as of this writing), so the labs avoid the few features new in 3.14.

On this page, or on your machine?

Sort each activity by where it happens.

Loading interactive…

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Correct answer

Also accepted:

Why

Why

The page parses what you type and shows outputs captured at build time, so it can grade shape and order. Anything that needs a real run of your own code, including tests, your changed program's output, and whether it stops with an error partway, happens on your computer or in Colab.

Worked example

Checked is not the same as run

  1. 1

    A fill-in-the-blank question asks for the missing text in print("[[b1]]") so that the program prints Lights on. Leo types Lights on and it's marked right.

  2. 2

    The page never ran Leo's program. The parser confirmed the line is well-formed Python and the blank matches an accepted answer. Separately, when the course was built, Python 3.14 ran the same program with that answer in place and printed Lights on.

  3. 3

    Curious, Leo opens a Colab notebook, types the line with Lights off instead, and presses Shift+Enter. Now Lights off appears. That run happened on Google's computers, not on the lesson page.

    the page checks; Python (yours or Colab's) runs

  4. 4

    From Chapter 1 he'll do the same on his own laptop, with Python installed locally, and from Chapter 2 he'll run each project's tests there too.

Fill in the blank

Fill the blank so the program prints exactly Doors open

Loading interactive…

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Correct answer

Also accepted:

Why

Why

The text between the quotes is printed exactly as typed, so the blank is Doors open with a capital D and no quotes of its own. The quotes are already in the line around the blank.

Worked example

Trusting an output you didn't run

  1. 1

    Chapter 1 shows a program next to the text it prints. How do you know it's right?

  2. 2

    When the course was built, that program was run by Python 3.14, and the build compared what it printed with the page, character by character. It would have refused to publish a page that differed.

  3. 3

    The same goes for error reports, like the missing quote earlier in this chapter: Python produced that report; nobody wrote it from memory.

  4. 4

    If your own run ever differs, the difference is information. Check that your code matches the page character for character, then check which version of Python you're running (Chapter 1 shows how). A few results legitimately differ between computers or between runs, and the pages that show them say so.

    a mismatch means a typo or a different version, not a broken page

Where this goes next

Chapter 1 §2 installs Python 3.14 on your machine. From Chapter 1 §3 on, you can run every example yourself. Chapter 1 §5 sets up the editor you chose under My setup. Chapter 2 ends with the first project. It's a unit converter you finish in a ready-made folder and check against its tests. Every chapter after that ends with a project too. Chapter 9 §7 shows how those tests are written, so you can write your own.

Check your understanding (counts toward your progress)

Where did the output shown under a code snippet on a page come from?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

No output on a page is typed by hand.

Nothing runs in your browser.

The build compares it with a real run and refuses to publish a page that differs.

Why

Every snippet is run by Python 3.14 at build time, and the build fails if the page disagrees with the real output.

What happens before a page is published?

Leo's fill-in-the-blank answer was marked right. Did the page run his program?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

The server only parses; it never runs a student's code.

No Python runs in the browser.

The build already ran the program with the accepted answer and checked its output.

Why

The page checked the shape of Leo's code and matched the blank. Python 3.14 ran the program with that accepted answer when the course was built, so the key is known to be right.

When did a real Python last run this exact program?

Colab's Python is version 3.13 while this course uses 3.14. What does that mean for the lab notebooks?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

Colab runs Python fine; it's just one version older.

Almost everything works the same in both versions.

The labs are written to work on Colab as it is.

Why

The labs stick to what both versions share, so they run as-is on Colab's 3.13.

Most of Python is the same across one version.

Which of these can the parser NOT tell about your code?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

Matching brackets is exactly the kind of structure a parser knows.

Which names appear is part of the code's shape.

A parser always knows where lines end.

Why

A parser knows shape, not behaviour. What a program prints is only known by running it.

A grammar checker can't tell whether a sentence is true.

Practice: What the page checks, and what your machine runs (5 problems · doesn’t affect your progress)

What is a parser?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

A parser never runs anything.

Checks are graded automatically by the server.

It's a program, not a folder.

Why

A parser reads code's shape, like a grammar checker reads a sentence, and never carries it out.

A program that works out the structure of code without running it

Where do you run code to see what your own changed program prints?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

The page parses your code; it never runs it.

Lanes are explanations, not places to run code.

You can, from Chapter 1 on your computer, or in Colab any time.

Why

Running is done by a real Python: yours, installed in Chapter 1, or Colab's in a browser.

On your own computer, or in a Colab notebook

Sort each item: produced at build time by Python 3.14, or by you on your own computer?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

What this task checks

Structure checked automatically. Whether your ideas are convincing isn't graded, so reread with the checklist.

The compiler says

A model answer

Why

Everything a page shows was captured from Python 3.14 when the course was built. Running your own changes and the project tests is your computer's job.

Correct answer

Also accepted:

Why

“The output box under a lesson snippet” → Build time, by Python 3.14; “The answer key of a predict-the-output question” → Build time, by Python 3.14; “The result of running your changed version of a snippet” → You, on your computer; “An error report shown in a lesson” → Build time, by Python 3.14; “The result of running a project's tests” → You, on your computer

Which of these can a lesson page grade for you?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

That needs a real run; a parser can't know it.

Only a real run shows that.

Timing needs a real run too.

Why

A parser can confirm shape: brackets, quotes, names used. Anything about what happens when code runs needs a real interpreter.

Whether the line you fixed is well-formed Python

Challenge: why does the course run every example at build time instead of letting an author type the output?

Correct! 🎉 Not quite.

Right on try — credit. Right — the answer had already been shown, so no credit this time. Next try is worth Answer shown after three tries — this one no longer earns credit. You chose to see the answer — this one earns no credit.

Speed isn't the reason; trust is.

Captured output looks exactly like real output, because it is.

Even experts misremember exact messages and spacing. A real run never does.

Why

Capturing every output from a real run, and refusing to publish on any mismatch, means what you read is what Python really does.

So no page can show output that the real Python wouldn't produce

Feeling good about this section?

Take the section quiz

Every answer gets a full explanation at the end.

Sign in to save highlights

Insert an equation

  • No matches.