4.2 KiB
Kapitel G08: Textverarbeitung & Strings in Python 🔤✨
Willkommen im Kapitel Textverarbeitung und Strings! Strings (Zeichenketten) gehören zu den vielseitigsten Datentypen in Python. In diesem Kapitel lernst du alle wichtigen String-Methoden zur Bereinigung, Suche, Zerlegung und Formatierung kennen.
🏛️ 1. Die Stempel-Analogie: Strings sind unveränderlich (immutable)!
Ein grundlegendes Konzept in Python: Strings können nach ihrer Erstellung nicht mehr verändert werden!
name = "python"
# ❌ Das funktioniert NICHT und wirft einen TypeError:
# name[0] = "P"
# ✅ Stattdessen erzeugt jede String-Methode einen NEUEN String:
name = name.capitalize() # Erzeugt "Python" und weist es neu zu
🖨️ Die Stempel-Analogie: Stell dir einen String wie gedruckten Text auf Papier vor. Du kannst die Buchstaben auf dem Papier nicht wegradieren. Jede String-Methode druckt stattdessen ein frisches neues Blatt Papier mit dem geänderten Text aus!
🧰 2. Das große String-Methoden Cheat-Sheet
Python stellt eine Fülle praktischer Methoden für Strings bereit:
A. Groß- & Kleinschreibung
text = "hallo welt"
print(text.upper()) # -> "HALLO WELT" (alles GROSS)
print(text.lower()) # -> "hallo welt" (alles klein)
print(text.capitalize()) # -> "Hallo welt" (nur erstes Zeichen groß)
print(text.title()) # -> "Hallo Welt" (jedes Wort groß)
B. Leerzeichen & Whitespace entfernen
eingabe = " max_mustermann \n"
print(eingabe.strip()) # -> "max_mustermann" (vorne & hinten bereinigt)
print(eingabe.lstrip()) # -> "max_mustermann \n" (nur links)
print(eingabe.rstrip()) # -> " max_mustermann" (nur rechts)
C. Suchen, Zählen & Ersetzen
satz = "Python ist super und Python macht Spaß"
# Ersetzen:
print(satz.replace("Python", "Coding"))
# -> "Coding ist super und Coding macht Spaß"
# Vorkommen zählen:
print(satz.count("Python")) # -> 2
# Position finden (-1 wenn nicht gefunden):
print(satz.find("super")) # -> 11
# Anfang & Ende prüfen (liefert True / False):
print(satz.startswith("Python")) # -> True
print(satz.endswith("Spaß")) # -> True
D. Zerlegen (.split) & Zusammenfügen (.join)
# 1. An Trennzeichen in eine Liste zerlegen:
daten = "Max;Mustermann;18;Informatik"
teile = daten.split(";")
print(teile) # -> ["Max", "Mustermann", "18", "Informatik"]
# 2. Ohne Parameter zerlegt .split() an beliebigen Leerzeichen:
woerter = " Python macht Spaß! ".split()
print(woerter) # -> ["Python", "macht", "Spaß!"]
# 3. Eine Liste mit einem Trennzeichen zu einem String zusammenfügen:
zutaten = ["Mehl", "Zucker", "Eier", "Milch"]
kuchen = ", ".join(zutaten)
print(kuchen) # -> "Mehl, Zucker, Eier, Milch"
✂️ 3. Strings sind Sequenzen (Index & Slicing)
Genau wie Listen kannst du auch auf einzelne Zeichen in Strings über deren Index und Slicing zugreifen:
wort = "Lagerregal"
print(wort[0]) # -> "L" (Erster Buchstabe)
print(wort[-1]) # -> "l" (Letzter Buchstabe)
print(wort[-4:]) # -> "egal" (Die letzten 4 Buchstaben)
print(wort[::-1]) # -> "lagerregaL" (String umkehren!)
🧪 4. Praxisbeispiel: CSV-Daten bereinigen & parsen
csv_zeile = " anna.meier@schule.at ; 1050 ; Wien ; 4A "
# 1. Zeile säubern und in Spalten zerlegen:
spalten = [feld.strip() for feld in csv_zeile.split(";")]
email, plz, stadt, klasse = spalten
print(f"E-Mail: {email.lower()}")
print(f"Standort: {plz} {stadt.title()}")
print(f"Klasse: {klasse}")
🎯 Deine Aufgaben in aufgabe.py
Öffne aufgabe.py und implementiere die 5 Funktionen:
ist_palindrom(text): Prüft, ob ein Text vorwärts wie rückwärts gleich ist (ignoriert Groß/Klein und Leerzeichen).zaehle_vokale(text): Zählt alle Vokale (a, e, i, o, u, ä, ö, ü) im Text.bereinige_benutzernamen(name): Entfernt Rand-Leerzeichen, konvertiert zu Kleinbuchstaben und ersetzt innere Leerzeichen durch_.woerter_zaehlen(text): Nutzt.split(), um die Anzahl der Wörter zu ermitteln.maskiere_kreditkarte(nummer): Ersetzt alle Zeichen außer den letzten 4 durch*.
Testen deiner Lösung:
python3 test_aufgabe.py