Python typing test

Real Python — function definitions, comprehensions, f-strings, slices and dictionary literals — timed keystroke by keystroke. Find out what your speed is on the code you write, not on a paragraph about foxes.

Take the test

What makes Python different to type

Python is lighter on brackets than most languages, but it has its own habits. The colon ends every def, if, for and class line, and it is a shifted key on the right pinky. snake_case identifiers put the underscore — shift plus hyphen, at the far top-right — into almost every name. Comprehensions and slices bring square brackets back, and f-strings mix braces into ordinary strings. The double underscore of dunder methods is the single most awkward sequence in the language.

The test text is drawn from idiomatic modern Python: type hints, comprehensions, context managers, exception handling. Indentation is collapsed to single spaces, because the point is the keys, not the whitespace your editor inserts for you.

Reading your result

Expect a lower number than on prose — twenty to thirty per cent lower is typical even for fast typists, because a Python line has far more shifted characters per word. What matters is the gap between the two: if your Python speed is less than half your prose speed, the symbol keys are the bottleneck and a week on the Programmers course will move the number more than any amount of general practice.

The coach reports hesitation separately from errors. A colon you always get right but always reach for slowly is a different problem from a bracket you keep mistyping, and it needs a different drill — speed on the reach, not accuracy on the key.

Beyond the test

The Programmers course has lessons dedicated to the underscore, the colon, and bracket pairs before it mixes them into full snippets. The Practice Lab can generate fresh Python on any topic — pandas, async, a Django view — so the practice stays close to what you write. And the JavaScript and SQL tests measure the same thing for the other languages on your desk.

Indentation, colons and the rhythm of Python

Python's block structure gives its typing a distinctive cadence: a header line ending in a colon, then a run of indented statements, then a blank line. In an editor the indentation is automatic; the colon is not, and the pause before it is where most Python typists lose time. Watch the live counter here for the dip at the end of every def and for line — that hesitation, multiplied over a day, is a surprising number of minutes.

Other typing tests

Start the free course