Sie drucken verschiedene Dinge:
>>> print "%s, %s" %(a, b)
foo, bar
>>> print "%s, %s", (a, b)
%s, %s ('foo', 'bar')
Die erste verwendet die Zeichenfolge "%s, %s"
und verwendet die Zeichenfolge Formatierung Operator %
die Werte a
und b
in die Format-Platzhalter einzufügen. Diese resultierende Zeichenfolge wird dann mit der print-Anweisung gedruckt.
Die zweite übergibt zwei Dinge an die print-Anweisung: Die Zeichenfolge "%s, %s"
und ein Tupel (a, b)
. Diese beiden Dinge werden unabhängig voneinander gedruckt, so dass hier keine String-Formatierung stattfindet.
I bevorzugen '{0}'. format (a) – rocksteady
Das zweite Beispiel macht nicht dasselbe wie das erste, also gibt es da einen offensichtlichen Unterschied: Vielleicht denken Sie an einen anderen Kontext als 'print'? Vielleicht in die 'Logging'-Bibliothek oder der Datenbankzugriff oder etwas anderes? –
Der zweite Code ist kein Python-Formatierer. Der erste ist ein String-Formatierer. Er erstellt den neuen String als Parameter für die Druckfunktion. (a, b) ist der zweite Parameter der Funktion p Rint – qvpham