Mam ciąg tego formularza
s='arbit'
string='%s hello world %s hello world %s' %(s,s,s)
Wszystkie% sw ciągu mają tę samą wartość (tj. S). Czy jest lepszy sposób na napisanie tego? (Zamiast wymieniać się trzy razy)
%
operator łańcuchowy będzie „przestarzały w Pythonie 3.1 i później zostanie kiedyś usunięty” docs.python.org/release/3.0.1/whatsnew/… teraz zastanawiam się, jaki jest najbardziej zalecany sposób zarówno dla zgodności wersji, jak i bezpieczeństwa.
str.format()
. Np .: query = "SELECT * FROM {named_arg}"; query.format(**kwargs)
, gdzie query
jest ciągiem formatu i kwargs
jest słownikiem z kluczami pasującymi do named_arg
s w ciągu formatu.
{0}
, {1}
, {2}
i tak dalej odpowiadać indeksów krotki 0
, 1
i 2
, odpowiednio. Alternatywnie, można również nazwać argumenty (takie jak {named_arg}
) i ustawić każdy z nich w metodzie format, na przykład:'Hi {fname} {lname}!'.format(fname='John', lname='Doe')