Steven D'Aprano added the comment:
Note also that this is mentioned here:
https://docs.python.org/3/library/stdtypes.html#boolean-values
"[True and False] are used to represent truth values (although other values can
also be considered false or true)."
although it is perhaps not as clear as
New submission from Steven D'Aprano :
There is a long-standing tradition, going back to Python 1.x days before we had
dedicated True and False values, to use the lowercase "true" and "false" to
mean *any value that duck-types as True* and *any value that duck-types as
False* in a boolean cont