Intermediate — Your Python Skill Level
Everyday scripting is solid; the edge is features interacting with each other
Intermediate handles everyday scripting comfortably — data structures, control flow, straightforward functions — without being slowed down by routine maintenance or a small feature on an existing codebase.
The gap to Advanced is mostly in what happens when Python's convenience features interact: a shallow copy leaving nested data shared when you expected it duplicated, a generator's `return` value quietly not becoming part of its output, decorators stacking in an order that is easy to get backwards. Add class basics most tutorials skip — default equality without `__eq__`, and a mutable class attribute shared across every instance rather than copied per instance — and that is the specific list. These are the bugs a senior reviewer flags in ten seconds and everyone else spends an hour chasing.
Strengths
- Everyday scripting — data structures, control flow, ordinary functions — does not slow you down.
- You would not be the bottleneck on routine maintenance or a small feature on an existing codebase.
- You handle object basics comfortably: attributes, methods, and straightforward class use.
- You read code for what it does, not just for what it looks like it should do.
- This is the level most day-to-day scripting and data-wrangling work actually requires.
Growth Edges
- A shallow copy leaves nested lists and dicts shared between the copy and the original, which reads as duplicated and is not.
- A generator's return value does not become part of its output — it ends up on StopIteration instead, which is easy to miss.
- Stacked decorators apply from the bottom up, and getting the order backwards changes behaviour silently.
- A class with no __eq__ compares by identity by default, so two objects holding identical data are not equal.
- A mutable attribute defined on the class itself is shared by every instance, not copied per instance.
Career Matches
Compare
Frequently Asked Questions
What does an Intermediate Python result mean?
You handle everyday scripting comfortably. The gap to the next band is mostly bugs that appear when Python's convenience features interact with each other, not general programming ability.
What should I learn next from this band?
Object and iteration internals: shallow versus deep copy, what a generator actually does with return, and how decorator stacking order works — plus class basics like default equality without __eq__ and shared mutable class attributes.
What is the difference between a shallow copy and a deep copy?
A shallow copy duplicates the outer container but leaves nested objects — lists, dicts — shared between the original and the copy. Changing a nested item through one changes it through the other. A deep copy duplicates everything, all the way down.
Why doesn't a generator's return value show up in its output?
A generator communicates values through yield, not return. When a generator function does hit a return statement, that value is attached to the StopIteration exception raised when the generator is exhausted — it never appears in the sequence you iterate over.
How is the Python Test scored?
30 scenario questions across four areas — core syntax and types, functions and scope, data structures, and errors and object-oriented idioms. Your band comes from the total, and the breakdown is shown by category.
Is this a certified Python qualification?
No. This is a self-check that places you in one of four bands so you know what to learn next. It is not a certification and it is not a validated assessment instrument.
Explore all results in depth
Already taken the test, or just curious? Read the in-depth guide for any result — strengths, challenges, career matches, famous people, and FAQs.
Results Library content is educational, not a clinical assessment.