Некоторые странности Python: объяснение

Недавно мы публиковали ссылку на статью о некоторых странностях Python. Но не все так просто: у этих странностей есть вполне логичное объяснение. Например, в случае с перемножением чисел и строк:

>>> int(2 * 3)
6
>>> int(2 * '3')
33
>>> int('2' * 3)
222

Дело в том, что оператор * в Python перегружен и требует два операнда. Если один из операндов — строка, то * считается оператором «повторения» строки.