In diesem Artikel erfahren Sie mehr über die Python-String-Interpolation. Python unterstützt mehrere Möglichkeiten zum Formatieren von Textzeichenfolgen. Dazu gehören% -Formatierung, sys.format (), string.Template und f-Zeichenfolgen.
Die String-Interpolation ist ein Prozess, bei dem Werte von Variablen durch Platzhalter in einem String ersetzt werden. Wenn Sie beispielsweise eine Vorlage haben, mit der Sie einer Person wie "Hallo (Name der Person), schön Sie kennenzulernen!" Hallo sagen können, möchten Sie den Platzhalter für den Namen der Person durch einen tatsächlichen Namen ersetzen. Dieser Vorgang wird als String-Interpolation bezeichnet.
F-Saiten
Python 3.6 hat eine neue String-Interpolationsmethode namens Literal-String-Interpolation hinzugefügt und ein neues Literal-Präfix eingeführt f
. Diese neue Art der Formatierung von Zeichenfolgen ist leistungsstark und einfach zu verwenden. Es bietet Zugriff auf eingebettete Python-Ausdrücke in Zeichenfolgenkonstanten.
Beispiel 1:
name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')
Wenn wir das obige Programm ausführen, wird die Ausgabe sein
Hallo Welt! Das ist Python
Im obigen Beispiel f
weist das Literalpräfix Python an, den Wert von zwei Zeichenfolgenvariablennamen und -programmen in geschweiften Klammern wiederherzustellen ()
. Wenn wir also print
die obige Ausgabe erhalten.
Diese neue String-Interpolation ist leistungsstark, da wir beliebige Python-Ausdrücke einbetten können, mit denen wir sogar Inline-Arithmetik betreiben können.
Beispiel 2:
a = 12 b = 3 print(f'12 multiply 3 is (a * b).')
Wenn wir das obige Programm ausführen, wird die Ausgabe sein
12 multiplizieren 3 ist 36.
Im obigen Programm haben wir eine Inline-Arithmetik durchgeführt, die nur mit dieser Methode möglich ist.
%-Formatierung
Strings in Python verfügen über eine einzigartige integrierte Operation, auf die mit dem %
Operator zugegriffen werden kann. Mit können %
wir sehr einfach eine einfache String-Interpolation durchführen.
Beispiel 3:
print("%s %s" %('Hello','World',))
Wenn wir das obige Programm ausführen, wird die Ausgabe sein
Hallo Welt
Im obigen Beispiel haben wir zwei %s
Zeichenfolgenformatbezeichner und zwei Zeichenfolgen Hello
und World
in Klammern verwendet ()
. Wir haben Hello World
als Ausgabe. %s
Der String-Format-Bezeichner teilt Python mit, wo der Wert ersetzt werden soll.
Die Syntax für die Formatierung von Zeichenfolgen ändert sich geringfügig. Wenn Sie mehrere Ersetzungen in einer einzelnen Zeichenfolge vornehmen möchten und der %
Operator nur ein Argument verwendet, müssen Sie die rechte Seite in ein Tupel einschließen, wie im folgenden Beispiel gezeigt.
Beispiel 4:
name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))
Wenn wir das obige Programm ausführen, wird die Ausgabe sein
Hallo Welt! Das ist Python.
Im obigen Beispiel haben wir zwei String-Variablennamen und ein Programm verwendet. Wir haben beide Variablen in Klammern gesetzt ()
.
Es ist auch möglich, in unserer Formatzeichenfolge auf Variablensubstitutionen nach Namen zu verweisen, wenn wir dem %
Operator eine Zuordnung übergeben :
Beispiel 5:
name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))
Wenn wir das obige Programm ausführen, wird die Ausgabe sein
Hallo Welt! Das ist Python.
Dies erleichtert die Pflege und Formatierung unserer Formatzeichenfolgen in Zukunft. Wir müssen uns nicht um die Reihenfolge der Werte kümmern, die wir mit der Reihenfolge der Werte übergeben, auf die in der Formatzeichenfolge verwiesen wird.
Str.format ()
Bei dieser Zeichenfolgenformatierung verwenden wir die format()
Funktion für ein Zeichenfolgenobjekt und geschweifte Klammern ()
. Das Zeichenfolgenobjekt in der format()
Funktion wird anstelle von geschweiften Klammern eingesetzt ()
. Wir können die format()
Funktion verwenden, um einfache Positionsformatierungen durchzuführen, genau wie bei der %
Formatierung.
Beispiel 6:
name = 'world' print('Hello, ()'.format(name))
Wenn wir das obige Programm ausführen, wird die Ausgabe sein
Hallo Welt
In diesem Beispiel haben wir geschweifte Klammern ()
und format()
Funktionen verwendet, um das Namensobjekt zu übergeben. Wir haben den Wert des Namens anstelle der geschweiften Klammern ()
in der Ausgabe erhalten.
Wir können unsere Variablensubstitutionen mit Namen referenzieren und sie in beliebiger Reihenfolge verwenden. Dies ist eine sehr leistungsstarke Funktion, da Sie die Reihenfolge der Anzeige neu anordnen können, ohne die an die Formatierungsfunktion übergebenen Argumente zu ändern.
Beispiel 7:
name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))
Wenn wir das obige Programm ausführen, wird die Ausgabe sein
Hallo Welt! Das ist Python.
In this example we specified the variable substitutions place using the name of variable and pass the variable in format()
.
Template Strings
Template Strings is simpler and less powerful mechanism of string interpolation. We need to import Template
class from Python’s built-in string
module to use it.
Example 8:
from string import Template name = 'world' program ='python' new = Template('Hello $name! This is $program.') print(new.substitute(name= name,program=program))
When we run the above program, the output will be
Hello world! This is python.
In this example we import Template
class from built-in string
module and made a template which we used to pass two variable.
Key Points to Remember:
- %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
- In str.format() method we pass the string object to the format() function for string interpolation.
- Bei der Vorlagenmethode erstellen wir eine Vorlage, indem wir die Vorlagenklasse aus dem integrierten Zeichenfolgenmodul importieren.
- Die Literal String Interpolation-Methode ist eine leistungsstarke Interpolationsmethode, die einfach zu verwenden ist und die Lesbarkeit des Codes verbessert.