У меня есть строка этой формы
s='arbit'
string='%s hello world %s hello world %s' %(s,s,s)
Все% s в строке имеют одно и то же значение (т.е. s). Есть ли лучший способ написать это? (Вместо того, чтобы перечислять s три раза)
%строковый оператор будет «устарел в Python 3.1 и позже удален» docs.python.org/release/3.0.1/whatsnew/… теперь мне интересно, какой способ является наиболее рекомендуемым для обеспечения совместимости версий и безопасности.
str.format(). Пример:, query = "SELECT * FROM {named_arg}"; query.format(**kwargs)где query- строка формата, а kwargs- словарь с ключами, соответствующими named_args в строке формата.
{0}, {1}, {2}и так далее соответствуют индексам кортежа 0, 1и 2, соответственно. В качестве альтернативы также можно назвать аргументы (например {named_arg}) и установить каждый из них в методе форматирования, например:'Hi {fname} {lname}!'.format(fname='John', lname='Doe')