так я верю, но мне как хардкорному бейсикисту было дико. Тем более, что было в тесте на знание синтаксиса («найди неправильное выражение») и мне точно показалось, что за такое компьютер трасерами расстреливает
Вообще, тот факт, что строки можно умножать на числа - это просто курьёз. Его легко можно было бы добавить в какой угодно язык, просто где-то реализовать правило "умножение строки на число понимать как конкатенацию этой строки с самой собой". Интереснее, что, оказывается, оператор "звёздочка" работает с любым объектом, для которого определён "волшебный" метод __mul__. Который, естественно, можно определять по своему усмотрению. Например,
class C:
def __init__(self, message):
self.message = message
def __mul__(self, k):
if (k == 1):
return self
if (k == 2):
return C(f'{self.message} bis')
if (k == 3):
return C(f'{self.message} ter')
return C(f'{self.message} iterum atque iterum')
salve = C('salve')
print((salve * 1).message)
print((salve * 2).message)
print((salve * 3).message)
print((salve * 4).message)
печатает
salve
salve bis
salve ter
salve iterum atque iterum
Пока в это необязательно, наверно, вникать, особенно если вы до классов не добрались. Но для питона характерны такие "волшебные методы", которые сами вызывать не надо, но они делают доступной ту или иную функциональность.