Journey
Runtime
This journey builds the smallest coherent model of Python at runtime: programs run statements, names refer to objects, objects have types, and operations ask those objects to do work.
In this journey
Start with executable evidence. Separate value, identity, and absence. Read expressions as object operations.
Start with executable evidence. Learners first need to see that every page is a runnable program with visible output.
PAGE source output run evidence Examples are evidence loops: source, a run step, and visible output stay together. Hello World Use this example to start with a complete program and its output.
Values Use this example to see that Python programs manipulate runtime objects.
Literals Use this example to write small values directly in source code.
Variables Use this example to understand that names bind to objects rather than storing values themselves.
Constants Use this example to learn the convention Python uses for values that should not change.
Separate value, identity, and absence. This section prevents early confusion about equality, object identity, missing values, and truth tests.
object == value is identity None Runtime objects answer separate questions: equal value, same identity, or the singleton that marks absence. None Use this example to represent expected absence with a singleton object.
Booleans Use this example to combine facts with boolean operators.
Truthiness Use this example to predict how objects behave in boolean contexts.
Equality and Identity Use this example to distinguish value equality from object identity.
Mutability Use this example to predict when operations change an object in place.
Object Lifecycle Use this example to explain references, garbage collection, and why identity can outlive a single name.
Read expressions as object operations. This section connects operators, text, and formatting to Python's data model.
syntax DATA MODEL __add__ __len__ __format__ result Expression syntax enters the data model; object methods produce the result. Numbers Use this example to use numeric objects and arithmetic operators.
Operators Use this example to combine, compare, and test values with expression syntax.
Strings Use this example to treat text as Unicode rather than raw bytes.
String Formatting Use this example to turn objects into readable text at output boundaries.
Bytes and Bytearray Use this example to contrast text with binary data and explicit decoding.