The last six exercises in this track are placement tests. Each one checks what you already know about one later track. They are optional. Use them to decide where to start, or skip them and work through the tracks in order.
How to use them
Pick the test for a track you think you already know, and try it without the hints.
- If you solve it on your own, you probably know that track's core material. Skim its articles and move on.
- If you get stuck, that track is where to start. Come back to the test when you have finished the track.
| Test | Checks what you know about |
|---|---|
| 1/6 | type hints, generic classes and variance |
| 2/6 | protocols and abstract base classes |
| 3/6 | designing errors and exceptions |
| 4/6 | generators and iterators |
| 5/6 | asyncio tasks and cancellation |
| 6/6 | modules and imports |
The tests use ideas from the tracks they check, before this site has taught them. Each problem statement defines its terms, but expect to look some things up. The fifth test is rated hard because asyncio cancellation is one of the harder topics in the course.
They count like other exercises
Each placement test is an ordinary exercise. Solving one counts toward this track's progress and appears in your solved list. A test you skip shows as unsolved in this track and on the Python roadmap.
Check your understanding You solve the generators test easily, but get stuck on the asyncio one. Where should you start? Show answer Hide answer
Skim the generators track, and start the concurrency track from its first item. Each placement test tells you about the one track it checks, so passing one says nothing about the others.