Eu tenho uma string deste formulário
s='arbit'
string='%s hello world %s hello world %s' %(s,s,s)
Todos os% s na string têm o mesmo valor (ou seja, s). Existe uma maneira melhor de escrever isso? (Em vez de listar três vezes)
%
operador de string será "obsoleto no Python 3.1 e removido posteriormente em algum momento" docs.python.org/release/3.0.1/whatsnew/… agora eu me pergunto qual é a maneira mais recomendada para compatibilidade de versão e segurança.
str.format()
. Ex .: query = "SELECT * FROM {named_arg}"; query.format(**kwargs)
, onde query
é a string de formato e kwargs
é um dicionário com chaves que correspondem aos named_arg
s na string de formato.
{0}
, {1}
, {2}
e assim por diante correspondem aos índices de tupla 0
, 1
, e 2
, respectivamente. Como alternativa, também é possível nomear os args (como {named_arg}
) e definir cada um no método de formato, da seguinte forma:'Hi {fname} {lname}!'.format(fname='John', lname='Doe')