10.1 format()
Oft müssen wir viele Daten in der Konsole (auf dem Bildschirm) ausgeben. Wir sind nicht die ersten, die damit konfrontiert wurden — deshalb gibt es in Python schon lange die Funktion format()
, die es ermöglicht, Zeichenketten zu verbinden und Daten einfacher und verständlicher auszugeben.
Die Funktion format()
wird verwendet, um Werte an bestimmten Positionen in eine Zeichenkette einzufügen. Der Syntax der Funktion sieht folgendermaßen aus:
"Zeichenkettenschablone von {} bis {}".format(wert1, wert2,…)
Fakt 1. Die Funktion format()
ist eine Tochterfunktion der Zeichenkette, deshalb wird sie bei einer Zeichenkette aufgerufen. Anstatt die Zeichenkette an die Funktion zu übergeben, schreiben wir die Zeichenkette, dann einen Punkt und rufen dann die Funktion format()
auf und übergeben ihre Parameter.
Fakt 2. Die Funktion format()
füllt die Zeichenkettenschablone mit den übergebenen Werten. Sie konvertiert die übergebenen Werte in Zeichenketten (wenn dort z.B. Zahlen waren) und fügt sie an den mit {}
markierten Positionen ein. Eine solche Stelle zum Einfügen eines Wertes wird placeholder
genannt.
Grundlegende Verwendung:
welcome_message = "Hallo, {}, willkommen im {}!"
print(welcome_message.format("Anna", "unserem Laden"))
Ergebnis:
"Hallo, Anna, willkommen im unserem Laden!"
Formatierung von Zahlen:
output = "Daten: {0:.2f} und {1:.2f}".format(3.1415926, 2.71828)
print(output)
Ergebnis: "Daten: 3.14 und 2.72"
— Demonstration der Begrenzung der Ausgabe auf zwei Dezimalstellen.
Verwendung von Schlüsselwörtern:
output = "{name} arbeitet bei {company}"
print(output.format(name="Sergej", company="Google"))
Ergebnis:
"Sergej arbeitet bei Google"
Die Verwendung von format()
verbessert die Lesbarkeit und Wartbarkeit des Codes, da das Format einfach geändert werden kann, ohne die gesamte Zeichenkette bearbeiten zu müssen.
10.2 f-Notation
Ab Version 3.6 gibt es in Python einen neuen Typ von Zeichenketten — die f-strings
, was wörtlich „formatted string“ bedeutet. Diese Zeichenketten verbessern die Lesbarkeit des Codes und sind schneller als andere Formatierungsmethoden.
Um f-strings
zu verwenden, setzt man vor die Zeichenkette einen Buchstaben "f"
oder "F"
. Die Ausdrücke zum Einfügen werden in geschweifte Klammern {}
gesetzt:
Beispiel:
force = "Dunkle Seite"
message = f"Möge die Macht mit dir sein, {force}!"
print(message) # Ausgabe: Möge die Macht mit dir sein, Dunkle Seite!
Wichtig! In den geschweiften Klammern können Variablen angegeben werden, die im aktuellen Gültigkeitsbereich verfügbar sind (dazu später mehr), und Python konvertiert sie automatisch in eine Zeichenkette und fügt sie an der richtigen Stelle ein.
Beispiel:
age = 28
message = f"Ich bin {age} Jahre alt"
print(message) # Ausgabe: Ich bin 28 Jahre alt
Darüber hinaus können in den geschweiften Klammern Ausdrücke mit vielen Variablen verwendet werden.
Beispiel:
birth_year = 1985
current_year = 2024
message = f"Ich bin {current_year - birth_year} Jahre alt"
print(message) # Ausgabe: Ich bin 39 Jahre alt
Unter der Haube wird das alles in einen Aufruf der Funktion format()
umgewandelt, aber der neue Ansatz ist wirklich bequemer.
Benutze es nach Herzenslust.
10.3 Parameter sep
und end
In Python bietet die Funktion print()
zwei nützliche Parameter — sep
und end
, die es ermöglichen, die Datenausgabe zu steuern. Diese Parameter machen die Funktion print()
flexibler und können verwendet werden, um die Ausgabe zu formatieren, ohne zusätzliche Funktionen oder komplexe Zeichenkettenoperationen zu benötigen.
Der Parameter sep
bestimmt das Zeichen oder die Zeichenkette, die zur Trennung mehrerer an print()
übergebener Werte verwendet wird. Standardmäßig ist sep als Leerzeichen festgelegt. Das bedeutet, wenn du mehrere Argumente an print()
übergibst, werden sie durch ein Leerzeichen getrennt.
Und wenn du möchtest, dass die Daten nicht durch ein Leerzeichen, sondern beispielsweise durch ein Komma getrennt werden, musst du am Ende den Parameter sep
hinzufügen und ihm direkt eine neue Trennzeichenzeichenkette zuweisen.
Beispiel:
print("Hallo", "Welt") # Ausgabe: Hallo Welt
print("Hallo", "Welt", sep=", ") # Ausgabe: Hallo, Welt
Oder du kannst zum Beispiel dafür sorgen, dass jeder Wert in einer neuen Zeile ausgegeben wird. Dann musst du dem Parameter sep
das spezielle Zeichen für den Zeilenumbruch zuweisen — es wird durch das Zeichenpaar “\n”
dargestellt.
Beispiel | Erklärung |
---|---|
|
|
Der Parameter end
bestimmt, was nach allen übergebenen Werten ausgegeben wird. Der Standardwert von end
— das neue Zeilenzeichen (\n)
, was bedeutet, dass nach der Ausführung von print()
eine neue Zeile eingefügt wird.
Indem du end
änderst, kannst du steuern, wie die Daten ausgegeben werden, z.B. um die Ausgabe in derselben Zeile fortzusetzen:
Beispiel:
print("Hallo", end=" ")
print("Welt") # Ausgabe: Hallo Welt
Die Verwendung von sep
und end
kann in Szenarien, in denen eine spezielle Formatierung der Ausgabe erforderlich ist, äußerst nützlich sein, beispielsweise beim Erstellen von Tabellen, Berichten oder beim Ausgeben von Daten in einer Zeile ohne automatischen Zeilenumbruch.
Neben der Vereinfachung des Codes und dem Vermeiden, manuell Trennzeichen hinzuzufügen oder Zeilenumbrüche zu steuern, erhöht die Verwendung von sep
und end
die Lesbarkeit und Wartbarkeit des Codes.
GO TO FULL VERSION