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.