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

Glossary

Every defined term in this course, A–Z.

absolute path

Read the section →

A path that starts from the top of the file system.

abstract base class

Read the section →

A class that lists methods its subclasses must provide.

accumulator

Read the section →

A variable that builds up a result as a loop runs, like a running total.

A second name for the same object.

A defined way for one program to ask another for data or actions.

A secret string that proves your program is allowed to use an API.

A value you hand to a function when you call it.

Giving a name a value with =.

A named value attached to an object, reached with a dot.

augmented assignment

Read the section →

A shortcut like total += 5 for total = total + 5.

The simple case where a recursive function stops calling itself.

Big-O notation

Read the section →

A way of describing how running time grows as the input grows.

The indented lines that belong to an if, loop, or function.

True or False.

A spot where the debugger pauses your program.

build backend

Read the section →

The tool that actually turns a project into a wheel.

The simpler instructions Python turns your code into before running it.

Raw data: a sequence of numbers from 0 to 255.

C extension

Read the section →

A module written in C (or Rust, C++) that Python can import.

The pile of function calls that are in progress.

capture pattern

Read the section →

A bare name in a case pattern, which matches anything and stores it.

One letter, digit, symbol, or space in a piece of text.

A blueprint for making objects of a new kind.

class attribute

Read the section →

A value stored on the class and shared by every instance.

A function that remembers variables from the place it was created.

The number Unicode gives each character.

A note in code that Python ignores.

complex number

Read the section →

A number with a real and an imaginary part, like 3+4j.

composition

Read the section →

Building an object out of other objects it holds.

comprehension

Read the section →

A one-line way to build a collection from a loop: [x*2 for x in xs].

An expression checked for true or false to decide what runs.

conditional expression

Read the section →

An if/else that produces a value: a if condition else b.

constructor

Read the section →

The method that sets up a new object when it's created.

context manager

Read the section →

Something used with with that sets up and always cleans up.

continuous integration

Read the section →

Automatically testing every change when it's pushed.

A function that can pause at an await and carry on later.

The standard Python interpreter, written in C.

CSS selector

Read the section →

A short pattern that picks out parts of a web page, like div.price.

A plain-text table with one row per line and commas between fields.

An organised store of data a program can search and update.

A class that writes its own init, repr and eq from a list of fields.

A tool that pauses a running program so you can inspect it.

Something written with @ above a function that wraps it in extra behaviour.

A copy of a container and everything inside it.

default argument

Read the section →

A value a parameter uses when the caller leaves it out.

deferred annotation evaluation

Read the section →

Since 3.14, Python stores annotations without evaluating them until asked.

A package your project needs in order to work.

An object that controls what happens when an attribute is read or set.

A collection that looks values up by key.

A string at the top of a function that explains it.

A web page seen as a tree of elements.

duck typing

Read the section →

Caring what an object can do, not what type it is.

dynamic typing

Read the section →

Types belong to values, and a name can point at any type.

encapsulation

Read the section →

Keeping an object's inner details behind a clear set of methods.

The rule for turning text into bytes and back.

One URL of an API that does one job.

A fixed set of named choices, like Color.RED and Color.GREEN.

environment variable

Read the section →

A named setting your operating system passes to programs.

escape sequence

Read the section →

A backslash code like \n that stands for a special character.

The scheduler that runs coroutines, switching between them while they wait.

An error that happens while a program runs.

An object that runs your functions on a pool of threads or processes.

A piece of code that produces a value.

A string starting with f that fills in values from {}.

first-class function

Read the section →

A function treated as a value: stored, passed, returned.

Setup that pytest prepares for a test, such as a temporary folder.

A True/False variable that remembers whether something happened.

A number with a decimal point, stored approximately.

floor division

Read the section →

Division that rounds down to a whole number, written //.

A tool that rewrites code into one consistent layout.

The workspace Python makes for one function call, holding its local names.

A named, reusable piece of code you call to do a job.

A placeholder for a result that isn't ready yet.

garbage collector

Read the section →

The part of Python that cleans up objects nothing uses any more.

Something that produces values one at a time, only when asked.

generator function

Read the section →

A function with yield that produces values one at a time.

generic type

Read the section →

A type with a slot for another type, like list[str].

A lock that lets only one thread run Python code at a time in standard CPython.

A tool that records snapshots of your project's history.

gradual typing

Read the section →

Adding type hints a little at a time, where they help most.

guard clause

Read the section →

An early check that handles a special case and gets out of the way.

A number Python computes from a value to find it fast in a set or dict.

Usable as a dictionary key or set member, because it never changes.

An extra named piece of information sent with a request or response.

higher-order function

Read the section →

A function that takes or returns another function.

The language web pages are written in.

The rules browsers and programs use to ask web servers for things.

An editor with running, debugging, and error-checking built in.

Safe to repeat: doing it twice has the same effect as doing it once.

Which object something is, as opposed to what it contains.

Unable to be changed once made.

implementation

Read the section →

A program that runs Python code, such as CPython or PyPy.

Making a module's code available in your file.

indentation

Read the section →

Spaces at the start of a line that show which block it belongs to.

A position number in a sequence, starting at 0.

infinite loop

Read the section →

A loop that never ends because its condition never becomes false.

inheritance

Read the section →

Making a new class that starts with everything another class has.

An attack where input is treated as code, such as SQL.

One particular value of a type: 5 is an instance of int.

instance attribute

Read the section →

A value stored on one particular object.

A whole number.

interpreter

Read the section →

A program that reads your code and carries it out.

Anything a for loop can go through one item at a time.

One trip through a loop's block.

An object that hands out items one at a time and remembers where it is.

iterator protocol

Read the section →

The two-method agreement (iter and next) that for loops rely on.

A compiler that turns hot code into machine code while the program runs.

A text format for structured data made of objects, arrays, strings, and numbers.

The label you look a value up by in a dictionary.

key function

Read the section →

A function that tells sorted or max what to compare.

keyword argument

Read the section →

An argument passed by name: f(x=3).

A tiny unnamed function written in one line.

lazy evaluation

Read the section →

Working something out only when it's actually needed.

A tool that flags likely bugs and style problems without running the code.

An ordered, changeable collection: [1, 2, 3].

Literal type

Read the section →

A type that allows only certain exact values.

A tool that lets only one thread into a piece of code at a time.

A file recording the exact version of every installed package.

Recording what a program does, with levels like INFO and ERROR.

Code that repeats.

loop variable

Read the section →

The name a for loop gives each item in turn.

A function that belongs to a value and is called with a dot.

method resolution order

Read the section →

The order Python searches classes when looking up a method.

A file of Python code you can import and use.

Garbled text from decoding bytes with the wrong encoding.

Able to be changed in place.

nested loop

Read the section →

A loop inside another loop.

Python's value meaning 'nothing here'.

A document of runnable code cells mixed with text and results.

Any value Python works with: a number, a string, a list, a function.

off-by-one error

Read the section →

A loop that runs one time too many or too few.

A value an operator works on, like 3 and 4 in 3 + 4.

A symbol such as + or == that combines values.

A library that lets you work with database rows as Python objects.

Replacing an inherited method with your own version.

A folder of modules imported together.

A name in a function definition that receives an argument.

The address of a file or folder.

The standard module for working with file paths as objects.

pattern matching

Read the section →

Choosing code by the shape of a value with match and case.

Python's standard tool for installing packages.

A chain of steps where each one feeds the next.

polymorphism

Read the section →

Different kinds of objects answering the same method call in their own way.

positional argument

Read the section →

An argument matched to a parameter by its position.

pre-commit hook

Read the section →

A check that runs automatically before git records a commit.

Which operator Python applies first.

primary key

Read the section →

A column that uniquely identifies each row.

A separately running program with its own memory.

A tool that measures where a program spends its time.

A set of instructions a computer can carry out.

A method you read like an attribute, without parentheses.

A type defined by the methods an object has, not by what it inherits.

pseudo-random

Read the section →

Numbers that look random but come from a fixed recipe.

pure function

Read the section →

A function whose result depends only on its arguments and that changes nothing else.

The public website where Python packages are published.

pyproject.toml

Read the section →

The file that describes a Python project and its dependencies.

The most widely used Python testing tool.

race condition

Read the section →

A bug where the result depends on which thread happens to go first.

Signalling an error yourself.

A sequence of evenly spaced whole numbers, like range(5).

A string written r"..." where backslashes are kept as typed.

A function that calls itself on a smaller problem.

The link from a name (or a container) to an object.

reference count

Read the section →

How many references point at an object; at zero it is freed.

regular expression

Read the section →

A pattern that describes text to search for.

relative path

Read the section →

A path that starts from the current folder.

The >>> prompt where Python runs each line as you type it.

How Python shows a value so you can tell exactly what it is, quotes and all.

A common style of web API built around resources and HTTP methods.

return value

Read the section →

The value a function hands back.

A file where a website says which pages automated programs should leave alone.

Where in a program a name can be seen.

A .py file you run as a program.

A package's source code bundled for building elsewhere.

A password, key or token that must never be published.

A starting number that makes 'random' results repeatable.

The name a method uses for the object it was called on.

semantic versioning

Read the section →

A version-number scheme MAJOR.MINOR.PATCH that signals what changed.

A special value that means 'stop', like an empty line.

The character that sits between pieces of text, like the comma in a,b,c.

serialization

Read the section →

Turning data into text or bytes so it can be saved or sent.

An unordered collection with no duplicates.

shallow copy

Read the section →

A new outer container holding the same inner objects.

short-circuit evaluation

Read the section →

Stopping as soon as the answer is known.

side effect

Read the section →

Anything a function does besides returning a value, like printing or changing a list.

A function's name and the parameters it takes.

A part of a sequence, written s[start:stop:step].

source code

Read the section →

The text of a program as a person writes it.

special method

Read the section →

A method with double underscores, like len, that Python calls for you.

The language for asking a database questions and changing its data.

stable sort

Read the section →

A sort that keeps tied items in their original order.

standard library

Read the section →

The modules that come with every Python installation.

A complete instruction that does something.

static type checking

Read the section →

Checking types by reading code, without running it.

status code

Read the section →

The three-digit number a server sends back to say how a request went.

Text: a sequence of characters.

A word after a program's name that picks what it does, like git commit.

A piece of a longer string.

A 3.14 string starting with t that keeps its parts separate instead of joining them.

A coroutine the event loop is running alongside others.

A window where you type commands instead of clicking.

test-driven development

Read the section →

Writing a failing test first, then the code to pass it.

third-party package

Read the section →

Code someone else wrote that you install separately.

One line of work inside a running program; several can run at once.

A limit on how long to wait before giving up.

trace table

Read the section →

A table you fill in by hand showing each variable after each step.

The report Python prints when an error stops a program.

transaction

Read the section →

A group of database changes that succeed or fail together.

Whether a value counts as true or false in a condition.

try statement

Read the section →

Code that runs something and catches the errors it might raise.

An ordered collection that can't change: (1, 2).

The kind of a value, such as int or str.

A short name for a long type, made with the type statement.

type checker

Read the section →

A tool that reads your code and its hints and reports type mistakes.

type conversion

Read the section →

Making a value of one type from a value of another, like int("42").

A note in code saying what type a value should be, like x: int.

A description of a dict's exact keys and the type of each value.

The standard that gives every character a number.

A type that allows one of several types, like int | None.

Code that checks a small piece of your program does what it should.

Assigning several names at once from a sequence: a, b = pair.

A web address, like https://example.com/search?q=python.

The usual way of storing Unicode text as bytes.

A fast tool that manages Python versions, environments, and dependencies.

A name that refers to a value.

virtual environment

Read the section →

A private folder of installed packages for one project.

web framework

Read the section →

A library that turns incoming web requests into calls to your functions.

web scraping

Read the section →

Extracting information from web pages with a program.

A ready-to-install package file ending in .whl.

Spaces, tabs, and line breaks.

The _ pattern that matches anything without storing it.

working directory

Read the section →

The folder a terminal or program is currently in.