A related nitpick: since Python's integers are arbitrary size, technically operations like - and / are not constant time, so your claim of an implementation "with constant-time and constant-space operations" is not true.
However, I understand if that complaint is just too nitpicky for you to want to mention it. Great post btw.