Python typing test

Python reads like English. Then you type a dunder name and remember that it is not English at all.

0 wpm100% acc0/115
def summarize(rows):
total = sum(row["amount"] for row in rows)
return {"count": len(rows), "total": total}

The quiet difficulty of Python

Python hides its difficulty well. There are no braces to balance and no angle brackets, so the language looks friendlier than JavaScript at a glance. What it has instead is a dense layer of punctuation that never appears in prose: underscores, colons, quotes and square brackets.

Indentation is skipped in this test, because automatic indentation is a real feature of every Python editor and practising it teaches you nothing. What is left is the part you actually type: the symbols.

Where Python actually costs you time

  • Underscores in snake_case names — a ring-finger reach repeated several times per line.
  • Double underscores around dunder names — eight shift presses for two identifiers.
  • Colons at the end of every block — shift plus semicolon on a US layout, no matter how many times you do it.
  • Quotes switching between single and double, especially with a quote nested inside a string.
  • Braces inside f-strings — punctuation within punctuation, and your editor cannot help you.

What to expect from your score

Most developers score a little higher on Python than on JavaScript, because Python needs fewer shifted symbols per line. If prose runs at 90 WPM, a first Python run usually lands between 45 and 65.

If your accuracy drops below 90% on underscore-heavy lines, stop chasing speed. Correct the pattern first: the fix is a deliberate, slow reach rather than a faster one.

Compare with another language

Questions

What is a good Python typing speed?

Between 45 and 65 WPM on code is a reasonable working range, and above 70 is fast. Judge yourself against your own previous Python runs rather than against prose speed.

Why is indentation skipped in this test?

Because every Python editor indents automatically, and typing four spaces by hand is not a skill you need. The test still requires you to press Enter at the right point; it fills in the leading whitespace for you.

Does this test include type hints?

Some snippets use simple annotations and subscripted generics such as list of string. Those add square brackets and colons, which are exactly the characters worth practising.

Should I practise Python and JavaScript on the same day?

Alternating daily is fine. What you should avoid is switching every single run, because the differences in rhythm between the two languages will blur the feedback and hide your progress.

Last updated 2026-11-11. Written by the GeekType team.