Whitespace is signification in Python in that code blocks are defined by their indentation.
Furthermore, Guido van Rossum recommends using four spaces per indentation level (see PEP 8: Style Guide for Python Code).
What was the reasoning behind not requiring exactly four spaces per indentation level as well? Are there any technical reasons?
It seems like all the arguments that can be made for making whitespace define code blocks can also be used to argument for setting an exact whitespace length for one indentation level (say four spaces).
There are no technical reasons. It would not be too hard to modify the Python interpreter to require exactly four spaces per indentation level.
Here is one use case for other indentation levels: when typing into the interactive interpreter, it’s very handy to use one-space indentations. It saves on typing, it’s easier to count the number of spaces correctly, and readability is not a major concern (since the code isn’t even saved in a file).