Strings formatieren in Python
Leserliche Texte sind die Schnittstelle zwischen Menschen und Computer. Strings formatieren geht mit Python besonders einfach.
In diesem Blog-Post erfährst du folgendes:
- Wie du Zeichenketten mit Python formatierst.
- Wie du mit dem Datentyp datetime arbeitest.
- Einfache Beispiele, wie du Konstanten und Funktionen aus Programmbibliotheken importierst.
Der Blog-Post ist Teil von Spiel mit Python – ein Online Programmiertraining für absolute Anfänger.
Strings formatieren mit Python – ein einfaches Beispiel
import datetime jetzt = datetime.datetime.now() temperatur = 31.57 print (f'Heute ist der {jetzt:%d.%m.%Y} und es sind {temperatur:.1f} °C')
Probiere gleich aus: Öffne den Playground und kopiere den Code in das Eingabefeld, das du dort oben links findest.
Lies hier weiter, um zu verstehen, was da passiert.
f-Strings mit Python
Das ist ein Beispiel dafür, wie mit Python die Ausgabe des Programms schön gestaltet werden kann. Im Code Snippet verwenden wir zwei Variablen
jetzt
temperatur
Die Ausgabe wird anders aussehen, je nachdem, welche Werte die beiden Variablen haben. Am besten probierst du das gleich aus.
Doch bauen wir dein Wissen über String-Formatierung der Reihe nach auf.
Der “+” Operator zur String-Konkatenierung
Das einfachste Beispiel:
print('Hello World')
Ausgabe: Hello World
Dabei ist ‘Hello World’ eine konstante Zeichenkette.
Wir könnten auch eine Variable einführen:
zeichen = 'Hello World' print(zeichen)
Ausgabe: Hello World
Oftmals kommen wir in die Lage, zwei Zeichenketten für eine Ausgabe zu kombinieren:
print(zeichen + zeichen)
Ausgabe: Hello WorldHello
Die Ausgabe ist nicht gut lesbar und wir fügen ein Leerzeichen ein:
print (zeichen + ' '+ zeichen)
Ausgabe: Hello World Hello World
Doch das Aufbereiten von Zeichenketten mit dem “+” Operator ist unnötig aufwändig. Es gibt in Python3 eine sehr viel einfachere Möglichkeit:
f-Strings in Python – schnell und einfach schöne Strings erstellen
print (f'{zeichen}) print(f'{zeichen} {zeichen}')
Ausgabe: Hello World Hello World
So einfach ist das: mit f” wird die zu formatierende Zeichenkette gekennzeichnet.
Mit geschweiften Klammern umgeben wir die Variablen, die Python in der Zeichenkette einsetzen soll.
Und so können wir weitere Zeichen in den Ausgabestring hinzufügen:
print(f'{zeichen} und nocheinmal {zeichen}')
Ausgabe: Hello World und nocheinmal Hello World
f-Strings mit numerischen Werten
Oftmals wollen wir Zahlen für die Ausgabe formatieren. Auch dabei unterstützen uns die f-Strings.
Probiere gleich aus und verändere auch den Wert der Variablen Zahl:
zahl = 42 print (f'{zahl:<4}' )
Die Zahl wird linksbündig dargestellt – im Browser hat das keinen Effekt.
print (f'{zahl:_<4}')
Derselbe Effekt wie oben, aber die Zahl wird Links mit _ aufgefüllt bis sie insgesamt die Länge 4 erreicht. Man spricht von Padding.
print (f'{zahl:0>4}')
Derselbe Effekt wie oben, aber mit Nullen aufgefüllt.
print (f'{zahl:04d}')
Nochmals derselbe Effekt: Die Zahl wird vierstellig dargestellt und links mit Nullen aufgefüllt
Es brauchen nicht 4 Stellen zu sein, du kannst auch andere Werte einsetzen. Auch mit dem Padding-Zeichen kannst du spielen und es verändern.
Und jetzt kombinieren wir:
print (f'Die Zahl hat den Wert {zahl:0>4}')
Ausgabe: Die Zahl hat den Wert 0042
Aufpassen mit dem < und dem > Zeichen. Probiere gleich aus.
Interessant ist auch diese Möglichkeit:
print(f'{zahl=:0>4}')
Ausgabe: zahl=0042
Auch die Nachkommastellen können wir beeinflussen:
grösse=1.827 print(f'{grösse:.5f}')
Ausgabe: 1.82700
Nach dem Komma werden rechts Nullen aufgefüllt um die gewünschte Anzahl Zeichen zu erreichen, ein anderes Zeichen wäre nicht sinnvoll.
Und es wird sogar korrekt gerundet:
print(f'{grösse:.2f}')
Ausgabe: 1.83
Ausgehend von grösse=1.827.
Und wir können die Darstellung vor und nach dem Komma beeinflussen.
print (f'{grösse:0>12.5f}')
Ausgabe: 000001.82700
Also 12 Stellen insgesamt, davon 5 nach dem Komma und links mit Nullen gepaddet.
Auch die Tausender-Trennung ist möglich:
x = 1000000 print(f'{x:,}')
Ausgabe: 1,000,000
Als Trennzeichen sind allerdings nur die folgenden möglich: , und _
Datumsformatierung
Wir müssen oft mit Datums- und Zeitvariablen arbeiten und diese darstellen. Wir können unser Laptop nach dem aktuellen Datum und der aktuellen Zeit fragen:
import datetime jetzt= datetime.datetime.now() print(jetzt)
Die Ausgabe ist bei mir gerade: 2022-08-22 16:29:30.850000
Wir importieren die Library (Programmbibliothek) datetime
.
Wir holen das aktuelle Datum und die aktuelle Zeit ab und versorgen diesen Wert in der Variablen mit der Bezeichnung jetzt und geben diese aus. Die Ausgabe erfolgt nicht im bei uns gebräuchlichen Format. Mit den f-Strings können wir datetime
-Werte einfach formatieren:
print(f'Heute ist der {jetzt:%d.%m.%Y}')
Die Ausgabe ist bei mir jetzt gerade: Heute ist der 22.08.2022
Und damit haben wir alle Elemente vorgestellt, um das Code-Snippet zu verstehen und nachzubauen.
Python Listen – einfache Übungen
Wende die Theorie praktisch an und vertiefe dein Verständnis. Entwickle die Lösungen der Challenges im Playground.
Challenge
Hole in der Programmbibliothek math
die Variable pi
ab. Das geht so:
from math import pi print (pi)
Erzeuge die folgende Ausgabe:
pi=3.142 Pi=003.142
Ein Kreis mit Radius 2.5 hat die Fläche 19.6
Challenge
Erstelle mit einem Programm diese Tabelle
Radius=0 Umfang=000.000 Fläche=000.000 Radius=1 Umfang=006.283 Fläche=003.142 Radius=2 Umfang=012.566 Fläche=012.566 Radius=3 Umfang=018.850 Fläche=028.274 Radius=4 Umfang=025.133 Fläche=050.265 Radius=5 Umfang=031.416 Fläche=078.540 Radius=6 Umfang=037.699 Fläche=113.097 Radius=7 Umfang=043.982 Fläche=153.938 Radius=8 Umfang=050.265 Fläche=201.062 Radius=9 Umfang=056.549 Fläche=254.469