Недавно мы публиковали ссылку на статью о некоторых странностях Python. Но не все так просто: у этих странностей есть вполне логичное объяснение. Например, в случае с перемножением чисел и строк:
>>> int(2 * 3)
6
>>> int(2 * '3')
33
>>> int('2' * 3)
222
Дело в том, что оператор *
в Python перегружен и требует два операнда. Если один из операндов — строка, то *
считается оператором «повторения» строки.