1️⃣ Оператор +
>>> greting = 'Hello'
>>> name = 'World'
>>> print(greting + ' ' + name)
'Hello World'
Самый не актуальный способ форматирования. С мелкими строками в количестве двух штук он работает быстрее всех. Но когда строки становятся длинной в сотни символов, этот метод просаживает производительность.Делов том, что каждый оператор "+" выполняется отдельно для пар переменных, создавая новый объект строки, после которого следует следующий оператор, создающий еще один объект итд... В общем не рекомендуется, кроме случаев, где он явно выигрывает по скорости.
2️⃣ Оператор %
>>> name = 'World'
>>> print('Hello %s' % name)
'Hello World'
Быстрый, но не удобный. Устарел.3️⃣ Метод str.format()
Есть много фишек применения этого метода. Для примера используем самый простой.
>>> name = 'World'
>>> print('Hello {}'.format(name))
'Hello World'
Наверное, самый функциональный метод с множеством возможностей. Рекомендован к использованию.4️⃣ f-string
>>> name = 'World'
>>> print(f'Hello {name}')
'Hello World'
Относительно новый и удобный по синтаксису метод. Работает быстрей чем format(). Поддерживает аналогичные фишки форматирования (но не все). Еще развивается и обновляется в новых версиях Python.Рекомендован.
5️⃣ string.Template
templ = string.Template('Hello $name') print(templ.substitute(name='World'))
'Hello World'
Самый медленный, но самый безопасный способ собрать строку. Он в 10 раз медленней самого медленного способа. Но никаких инлайн-экспрешенов или фигурных скобочек.__________
Есть еще ряд других модулей, такие как textwrap, jinja или собственные методы строки. Но данный пост о простых способах вставки переменных в строку.
#tricks