- 1 Section
- 10 Lessons
- unbegrenzt
- Python Grundlagen10
- 1.1Python-Grundlagen: Installation, REPL, erstes Skript
- 1.2Variablen, Datentypen, Typumwandlung
- 1.3Kontrollstrukturen: if, elif, else
- 1.4Schleifen: for, while, range
- 1.5Listen, Tupel, Dictionaries, Sets
- 1.6Funktionen: def, Parameter, return
- 1.7Fehlerbehandlung: try-except-finally
- 1.8Strings: Methoden, Formatierung, f-Strings
- 1.9Dateien lesen und schreiben
- 1.10Praxisprojekt: Kleines Python-Programm von A bis Z
Strings: Methoden, Formatierung, f-Strings
Strings sind die wichtigste Datenstruktur für alles was mit Text zu tun hat – Benutzer-Eingaben, Dateien, Datenbanken, Web-Daten. Python hat eine außergewöhnlich starke und elegante Stringverarbeitung: die String-Klasse hat über 40 eingebaute Methoden, das Slicing kennst du schon von Listen, und mit f-Strings hat Python eines der lesbarsten Format-Systeme aller Programmiersprachen.
In dieser Lektion gehen wir tief in die String-Welt: wie man Texte zerlegt, kombiniert, durchsucht, umwandelt – und wie man Werte sauber in Strings einbettet. Strings sind in Python immutable (unveränderbar) – jede „Änderung" erzeugt einen neuen String. Das ist wichtig zu wissen, hat aber auch Vorteile: Strings sind sicher als Dict-Keys und nebenläufig nutzbar.
1) Strings erstellen und Sonderfälle
Du kennst die Standardformen schon: einfache oder doppelte Anführungszeichen funktionieren gleichwertig. Aber Python hat noch ein paar nützliche Spezial-Varianten:
Der Raw-String mit r"..." ist besonders nützlich bei Windows-Pfaden und regulären Ausdrücken – da kommen Backslashes vor und du willst nicht dass Python sie als Escape-Sequenzen versteht. Sonst aus "C:\nora" wird ein „n" zu einem Zeilenumbruch.
2) Index und Slicing – wie bei Listen
Strings sind sequenziell – du kannst auf einzelne Zeichen per Index zugreifen, wie bei Listen. Zählung beginnt bei 0. Mit negativen Indizes zählst du von hinten:
name[-1] → 'n' # letztes Zeichen
name[1:4] → 'yth' # Slice: 1 bis 3
name[:3] → 'Pyt' # Anfang bis 2
name[3:] → 'hon' # 3 bis Ende
name[::-1] → 'nohtyP' # umgekehrt!
len(name) → 6 # Länge
[start:stop:step]. stop ist nicht enthalten. Die Reverse-Magie mit [::-1] ist ein häufiges Idiom in Python um Strings (oder Listen) umzudrehen. Wichtig: Strings sind unveränderbar! name[0] = "X" gibt einen TypeError. Du erstellst stattdessen einen neuen String z.B. mit "X" + name[1:].3) Die wichtigsten String-Methoden zum Ausprobieren
Gib einen eigenen Text ein und sieh wie die häufigsten Methoden darauf wirken:
text.upper() gibt dir einen großgeschriebenen String, aber text selbst bleibt unverändert. Wenn du das speichern willst: text = text.upper(). Methoden lassen sich kombinieren („chainen"): text.strip().lower() – erst Leerzeichen außen weg, dann alles klein.4) Drei Generationen Formatierung – f-Strings sind König
Python hatte historisch drei verschiedene Wege, Werte in Strings einzubauen. Du wirst alle drei im Wild sehen – aber für neuen Code: nimm f-Strings. Sie sind die kürzeste und lesbarste Variante:
alter = 25
print("%s ist %d" % (name, alter))
alter = 25
print("{} ist {}".format(name, alter))
alter = 25
print(f"{name} ist {alter}")
f direkt vor dem ersten Anführungszeichen. Innerhalb des Strings kannst du {ausdruck} verwenden – Python ersetzt das durch den Wert. Im Gegensatz zu .format() liest du den Wert genau dort wo er hingehört.5) f-Strings im Detail – Ausdrücke und Formatierung
In den geschweiften Klammern darf nicht nur ein Variablenname stehen – auch komplette Python-Ausdrücke! Spielwiese mit Live-Vorschau:
6) Format-Spezifikatoren: das volle Programm
Nach einem Doppelpunkt im f-String kannst du Formatierungs-Optionen angeben. Aufbau: {wert:[fill][align][width][.precision][type]}. Hier die wichtigsten Optionen:
{x=} (ab Python 3.8) – das druckt automatisch Variablenname und -Wert: f"{alter=}" ergibt "alter=25". Perfekt zum Debuggen. Für formatierte Tabellen-Ausgaben kombinierst du Breiten: f"{name:<15} {note:>5}".7) Wichtige String-Methoden im Detail
Eine ausführliche Tabelle der String-Methoden, gruppiert nach Zweck. Diese wirst du regelmäßig brauchen:
| Methode | Beispiel | Ergebnis |
|---|---|---|
| Groß/Klein-Schreibung | ||
.upper() | "hallo".upper() | "HALLO" |
.lower() | "HALLO".lower() | "hallo" |
.title() | "max muster".title() | "Max Muster" |
.capitalize() | "hallo welt".capitalize() | "Hallo welt" |
| Suchen und Prüfen | ||
.find(sub) | "Python".find("th") | 2 (oder −1) |
.count(sub) | "banana".count("a") | 3 |
.startswith(s) | "file.txt".startswith("file") | True |
.endswith(s) | "foto.png".endswith(".png") | True |
in | "py" in "python" | True |
.isdigit() | "123".isdigit() | True |
.isalpha() | "abc".isalpha() | True |
| Trimmen und Aufräumen | ||
.strip() | " hi ".strip() | "hi" |
.lstrip() / .rstrip() | " hi ".lstrip() | "hi " |
| Zerlegen und Zusammenbauen | ||
.split(sep) | "a,b,c".split(",") | ["a","b","c"] |
.join(iterable) | "-".join(["a","b","c"]) | "a-b-c" |
.replace(alt,neu) | "Hallo".replace("a","u") | "Hullo" |
.splitlines() | "a\nb\nc".splitlines() | ["a","b","c"] |
8) Strings sind iterierbar
Aus Lektion 4 wissen wir: alles iterable kann mit for durchlaufen werden. Strings sind iterable – also kannst du sie Zeichen für Zeichen verarbeiten:
Zusammenfassung
Strings in Python sind immutable Sequenzen. Erstellung mit ' ', " ", """ """ (mehrzeilig), r"..." (raw). Index/Slicing wie bei Listen: s[i], s[a:b:s], s[::-1] für Reverse. Wichtige Methoden: .upper/.lower/.strip/.split/.join/.replace/.find/.startswith. f-Strings sind State-of-the-Art: f"{var} hat {x*2}". Format-Spec nach Doppelpunkt: Breite {n:5}, Nachkomma {p:.2f}, Auffüllung {n:05}, Tausender {n:,}, Prozent {x:.1%}. {x=} für Debug-Print. Strings sind iterable – mit for durchlaufbar.
