Rate each statement from 1 to 4:
| Rating | Meaning |
|---|---|
| 1 | I can't do this yet. |
| 2 | I've seen it, but I need to look it up. |
| 3 | I can do it, but I'm not sure I could teach it. |
| 4 | I can do it and explain it to someone else. |
Rate what you can do without looking anything up. For a statement with several skills, rate your weakest one.
The "Quiz question" column names the question in the Real Python Python Skill Test that covers the same topic, so you can compare your rating with your result.
| I can... | Rating (1-4) | Quiz question | Notes |
|---|---|---|---|
display values with print(). |
Using print() | ||
define a function with def, pass arguments, and return a value. |
Define a Function | ||
install a package from PyPI with python -m pip install, ideally inside a virtual environment. |
Installing Packages | ||
explain that a for loop variable takes each element from an iterable, such as a string or a list. |
Loop Anatomy | ||
use variables, operators, if statements, and basic built-in types (numbers, strings, lists). |
Beyond the quiz |
| I can... | Rating (1-4) | Quiz question | Notes |
|---|---|---|---|
tell mutable types (list) from immutable ones (tuple, str, frozenset). |
Mutable Objects | ||
| explain that dictionary keys must be hashable and that insertion order is kept since Python 3.7. | Dictionary Facts | ||
read and write list comprehensions, including an if filter, and rewrite them as a for loop. |
Understanding List Comprehensions | ||
use the standard library's common modules, such as pathlib, collections, itertools, and json, before reaching for third-party packages. |
Beyond the quiz |
| I can... | Rating (1-4) | Quiz question | Notes |
|---|---|---|---|
explain what problem the with statement solves and why files close even when an exception occurs. |
The With Statement | ||
recognize dunder methods such as .__init__() and .__iadd__() and say when Python calls them. |
Spot the Dunder | ||
write a generator function with yield and explain why it's lazy. |
Writing a Simple Generator | ||
| write and apply decorators, and explain how iterators and iterables work. | Beyond the quiz |
| I can... | Rating (1-4) | Quiz question | Notes |
|---|---|---|---|
| predict attribute lookup when data descriptors, non-data descriptors, and instance attributes compete. | Descriptor Precedence in Practice | ||
trace the C3 method resolution order and predict the output of cooperative super() calls. |
Cooperative super() and the C3 MRO | ||
explain what a metaclass does, and write basic async code with asyncio. |
Beyond the quiz |
Average your ratings for each level, including the Beyond the quiz row, take the quiz, and then fill in the quiz columns. The quiz reports one overall result, so use the explanations for each question you missed to fill in the per-level column.
| Level | Your average rating | Quiz questions missed | Gap (rating vs. result) |
|---|---|---|---|
| Novice | |||
| Intermediate | |||
| Proficient | |||
| Expert |
Overall quiz result: _______ (___ of 12 correct)
Self-rated level (the highest level whose average, and every average below it, is 3 or more, or Not yet Novice if your Novice average is below 3): _______
Do they match? _______
| Question | Your answer |
|---|---|
| My weakest area (the lowest-level miss that your check confirmed, or your lowest-rated statement at the lowest level) | |
| Why it matters for my goals | |
| One resource I'll use | |
| What I'll do with it this week | |
| Hours I can set aside per week | |
| Date I'll retake the quiz |