What this Python material is for
A first programming course has a peculiar difficulty: the feedback is unreliable. In most subjects a wrong answer is marked wrong. In programming, a wrong idea often produces a program that runs perfectly and quietly gives the wrong result — and you find out three weeks later, on an exam, in a question you have no idea how to approach.
So these guides are not organized around syntax you can look up. They are organized around the specific places where a beginner's mental model and Python's actual behaviour come apart: assignment that does not copy, division that discards a remainder, a method that sorts your list and hands you back None, a loop variable that is not what you think it is. Each one gets its own explanation, its own worked examples, and the exact error message Python produces when it goes wrong.
Who this is for
- Students in a first computer science course taught in Python
- Anyone teaching themselves to program, with no class and no deadline — the material is the same either way
- Students who can write code that works but cannot predict what a given fragment will print
- Anyone coming back to Python after a gap and wanting the foundations rather than a tutorial
Every code listing is executed
This is worth stating plainly, because it is unusual. Every code block on a Kestrel Python guide, and every line of output beneath it — including the tracebacks — was run as a standalone program against CPython 3.11 before the page was published. Not typed from memory, not adapted from somewhere else, not "should print". If a guide shows you output, that output came out of an interpreter.
Guides that have passed this check carry a Code verified badge in their header. The check is automated and it is run again whenever a page changes.
The topics being covered
Eighteen sections, in the order a first course actually teaches them — which is not the order a reference manual would use. Debugging arrives before loops, because that is when you start needing it. Drawing arrives before data, because it makes repetition visible.
Choose a topic to read its explainer, then practice it in the free app.
Bar widths show the intended share of practice questions once the bank is complete; they are not course-grade weights. Every section now has a study guide. The counts show how many practice questions each section has today. Every section now has questions.
If you only read one, read Why changing one list changed the other. It covers the single idea a first Python course tests hardest and beginners get wrong most silently — y = x does not copy a list. It also covers what does copy, why the same line is harmless for numbers and strings, and why .sort() hands you back None.
About the practice app
The free Python practice app has 500 questions across all eighteen sections, each with an explanation for every answer choice. Pick a single topic or mix them, and it works offline once opened: open the Python practice app. The counts above show exactly how many questions each section has.
In the meantime the guides stand on their own. They are the part of the material that explains; the app is the part that tests.
Frequently asked questions
Is the Python material free?
Yes. The study guides are free, need no account, and there is nothing to sign up for.
Is there a Python practice app yet?
Yes. The free practice app has 500 questions across all eighteen sections, with an explanation for every answer choice.
Do I need to already know how to program?
No. The material starts where a first course starts — what a variable is, how input becomes a number, what an error message is telling you — and builds up to lists, dictionaries, files and exceptions.
Is the code on these pages tested?
Yes. Every code listing and every line of output shown in a Python guide is executed against CPython 3.11 before publication, including the error messages. A guide carrying the Code verified badge has had each of its listings run as a standalone program.
Is this tied to one school, instructor, or section?
No. The material is written for a general first-course audience and focuses on transferable Python fundamentals.
Kestrel Exams Python material is independent study practice. Guides and explanations are original and AI-generated, reviewed for accuracy, with every code listing executed against CPython 3.11 before publication.