With the error in the third example, everything is obvious - the line cannot be repeated a fractional number of times, so the multiplication of the string is defined only by int.
With the second example, a little more interesting.
Python developers did not begin to make a logical type from scratch, but simply inherited it from int. True is equivalent to one, and False is zero.
Thus, with a logical data type, you can do all the mathematical operations that are defined for an integer type.
isinstance(True, int) # Выведет: True # То есть логический тип действительно является потомком int 3 + True # Выведет: 4 # То есть True действительно эквивалентен единице 3 / False # Выведет ошибку деления на ноль # То есть False действительно эквивалентно нулю
True * 3.7- MaxU