Ho una stringa di questo modulo
s='arbit'
string='%s hello world %s hello world %s' %(s,s,s)
Tutti i% s nella stringa hanno lo stesso valore (cioè s). C'è un modo migliore per scrivere questo? (Invece di elencare le s tre volte)
%
operatore di stringa sarà "deprecato su Python 3.1 e rimosso in seguito" docs.python.org/release/3.0.1/whatsnew/… ora mi chiedo quale sia il modo più consigliato sia per la compatibilità delle versioni che per la sicurezza.
str.format()
. Es .: query = "SELECT * FROM {named_arg}"; query.format(**kwargs)
, dove query
è la stringa di formato ed kwargs
è un dizionario con chiavi che corrispondono alla named_arg
s nella stringa di formato.
{0}
, {1}
, {2}
e così via corrispondono a indici tuple 0
, 1
, e 2
, rispettivamente. In alternativa, è anche possibile nominare gli argomenti (like {named_arg}
) e impostarli nel metodo di formattazione, in questo modo:'Hi {fname} {lname}!'.format(fname='John', lname='Doe')