Ich habe eine Zeichenfolge dieser Form
s='arbit'
string='%s hello world %s hello world %s' %(s,s,s)
Alle% s in der Zeichenfolge haben den gleichen Wert (dh s). Gibt es eine bessere Art, dies zu schreiben? (Anstatt s dreimal aufzulisten)
%Zeichenfolgenoperator wird in Python 3.1 "veraltet und später entfernt" docs.python.org/release/3.0.1/whatsnew/…. Jetzt frage ich mich, was sowohl für die Versionskompatibilität als auch für die Sicherheit der am besten empfohlene Weg ist.
str.format(). Beispiel: query = "SELECT * FROM {named_arg}"; query.format(**kwargs)Wo queryist die Formatzeichenfolge und kwargsist ein Wörterbuch mit Schlüsseln, die mit den named_args in der Formatzeichenfolge übereinstimmen .
{0}, {1}, {2}und so weiter , entsprechen Tupels Indizes 0, 1und 2, respectively. Alternativ ist es auch möglich, die Argumente (wie {named_arg}) zu benennen und jedes in der Formatmethode festzulegen, wie folgt:'Hi {fname} {lname}!'.format(fname='John', lname='Doe')