Zeichenfolgenformat in Python

Abgeschlossen

Neben der Transformation von Text und der Durchführung grundlegender Vorgänge wie Abgleich und Suche ist es wesentlich, den Text zu formatieren, wenn Sie Informationen darstellen. Die einfachste Möglichkeit zum Darstellen von Textinformationen mit Python ist die Verwendung der print()-Funktion. Es ist wichtig, in Variablen und anderen Datenstrukturen enthaltene Informationen in Zeichenfolgen zu überführen, die von print() verwendet werden können.

In dieser Lerneinheit lernen Sie mehrere gültige Methoden zum Einschließen von Variablenwerten in Text mithilfe von Python kennen.

Formatierung mit Prozentzeichen (%)

Der Platzhalter für die Variable in der Zeichenfolge ist %s. Verwenden Sie nach der Zeichenfolge ein weiteres %-Zeichen, gefolgt vom Variablennamen. Im folgenden Beispiel wird gezeigt, wie sie mithilfe des %-Zeichens Formatierungen vornehmen:

mass_percentage = "1/6"
print("On the Moon, you would weigh about %s of your weight on Earth." % mass_percentage)

Ausgabe: On the Moon, you would weigh about 1/6 of your weight on Earth.

Durch die Verwendung mehrerer Werte ändert sich die Syntax, da Klammern erforderlich sind, um die übergebenen Variablen einzuschließen:

print("""Both sides of the %s get the same amount of sunlight, but only one side is seen from %s because the %s rotates around its own axis when it orbits %s.""" % ("Moon", "Earth", "Moon", "Earth"))

Ausgabe: Both sides of the Moon get the same amount of sunlight, but only one side is seen from Earth because the Moon rotates around its own axis when it orbits Earth.

Tipp

Obwohl diese Methode immer noch eine gültige Methode zum Formatieren von Zeichenfolgen ist, kann sie zu Fehlern und einer verschlechterten Übersichtlichkeit im Code führen, wenn Sie mit mehreren Variablen arbeiten. Jede der beiden anderen Formatierungsoptionen, die in dieser Lerneinheit beschrieben werden, eignet sich besser für diesen Zweck.

Die format() -Methode

Die .format()-Methode verwendet geschweifte Klammern ({}) als Platzhalter innerhalb einer Zeichenfolge, und sie verwendet Variablenzuweisung zum Ersetzen von Text.

mass_percentage = "1/6"
print("On the Moon, you would weigh about {} of your weight on Earth.".format(mass_percentage))

Ausgabe: On the Moon, you would weigh about 1/6 of your weight on Earth.

Sie müssen wiederholte Variablen nicht mehrmals zuweisen, was es weniger ausführlich macht, da weniger Variablen zugewiesen werden müssen:

mass_percentage = "1/6"
print("""You are lighter on the {0}, because on the {0} you would weigh about {1} of your weight on Earth.""".format("Moon", mass_percentage))

Ausgabe: You are lighter on the Moon, because on the Moon you would weigh about 1/6 of your weight on Earth.

Anstelle leerer geschweifter Klammern besteht die Ersetzung in der Verwendung von Zahlen. {0} bedeutet, dass das erste Argument (Index 0) für .format() verwendet wird, was in diesem Fall Moon ist. Für schlichte Wiederholungen funktioniert {0} gut, verschlechtert aber die Lesbarkeit. Um die Lesbarkeit zu verbessern, verwenden Sie Schlüsselwortargumente in .format(), und verweisen Sie dann innerhalb geschweifter Klammern auf dieselben Argumente:

mass_percentage = "1/6"
print("""You are lighter on the {moon}, because on the {moon} you would weigh about {mass} of your weight on Earth.""".format(moon="Moon", mass=mass_percentage))

Ausgabe: You are lighter on the Moon, because on the Moon you would weigh about 1/6 of your weight on Earth.

Informationen zu f-Zeichenfolgen

Ab Python-Version 3.6 ist es möglich, f-Zeichenfolgen (f-strings) zu verwenden. Diese Zeichenfolgen sehen wie Vorlagen aus und verwenden die Variablennamen aus Ihrem Code. Die Verwendung von f-Zeichenfolgen im vorherigen Beispiel sähe wie folgt aus:

print(f"On the Moon, you would weigh about {mass_percentage} of your weight on Earth.")

Ausgabe: On the Moon, you would weigh about 1/6 of your weight on Earth.

Die Variablen werden in geschweifte Klammern gesetzt, und die Zeichenfolge muss das Präfix f verwenden.

Abgesehen davon, dass f-Zeichenfolgen weniger ausführlich sind als jede andere Formatierungsoption, ist es möglich, Ausdrücke innerhalb der geschweiften Klammern zu verwenden. Diese Ausdrücke können Funktionen oder direkte Vorgänge sein. Wenn Sie beispielsweise den Wert 1/6 als Prozentsatz mit einer Dezimalstelle darstellen möchten, können Sie die round()-Funktion direkt verwenden:

print(round(100/6, 1))

Ausgabe: 16.7

Bei F-Zeichenfolgen müssen Sie einer Variablen keinen Wert im Voraus zuweisen:

print(f"On the Moon, you would weigh about {round(100/6, 1)}% of your weight on Earth.")

Ausgabe: On the Moon, you would weigh about 16.7% of your weight on Earth.

Die Verwendung eines Ausdrucks erfordert keinen Funktionsaufruf. Alle der Zeichenfolgenmethoden sind ebenfalls gültig. Beispielsweise kann die Zeichenfolge eine bestimmte Groß-/Kleinschreibung für die Erstellung einer Überschrift erzwingen:

subject = "interesting facts about the moon"
heading = f"{subject.title()}"
print(heading)

Ausgabe: Interesting Facts About The Moon