Конкатенация и повторение строк

В Python над двумя строками можно выполнить операцию, обозначаемую знаком +. Однако, в отличие от чисел, выполняется не сложение (что для строк в принципе невозможно), а соединение, т. е. к концу первой строки добавляется вторая. По-другому операция соединения строк называется конкатенацией.

Кроме того, в Python есть операция повторения, то есть мультипликации, строки. Она обозначается знаком *, также как операция умножения для чисел. При повторении строки с одной стороны от знака * ставится строка, а с другой число, обозначающее количество повторов. При этом не важно, какой объект с какой стороны находится. Так число можно написать слева, а строку справа.

В одном выражении можно комбинировать операции конкатенации и мультипликация. При этом более высокий приоритет у операции повторения строки. Это видно в примере ниже. Когда опущены скобки, то сначала строка s2 повторяется n раз, а затем результат присоединяется к s1.

s1 = input("Введите первую строку: ")
s2 = input("Введите вторую строку: ")
n = int(input("Введите количество повторов: "))
 
print(s1 + s2 * n)
print((s1 + s2) * n)
print(s1 + str(n)) # error if just (s1 + n)
print('^' * 20)
print('Hello' + 'world')
print('Hello','world')

В последней строке кода конкатенацию перед выводом выполняет функции print() по своим правилам. Мы же ей просто передаем два аргумента.

Результат выполнения скрипта:

Введите первую строку: rt
Введите вторую строку: -
Введите количество повторов: 5
rt-----
rt-rt-rt-rt-rt-
rt5
^^^^^^^^^^^^^^^^^^^^
Helloworld
Hello world