For those curious here are the actual keywords (from https://docs.python.org/3/reference/lexical_analysis.html?ut... )
Hard Keywords:
False await else import pass None break except in raise True class finally is return and continue for lambda try as def from nonlocal while assert del global not with async elif if or yield
Soft Keywords:
match case _ type
I think nonlocal/global are the only hard keywords I now barely use, for the soft ones I rarely use pattern matching, so 5 seems like a good estimate
Removing "print" in 3.0 helped their case significantly, as well.
I recall when they added "async" and it broken a whole lot of libraries. I hope they never again introduce new "hard" keywords.