1. 🏛️ Die Stempel-Analogie: Strings sind unveränderlich!
In Python sind Strings (str) unveränderlich (immutable). Das bedeutet:
Sobald ein String erzeugt wurde, kann kein einzelner Buchstabe mehr ausgetauscht werden!
Stell dir einen String wie ein gedrucktes Dokument vor. Wenn du text.upper() oder text.replace("a", "b") aufrufst,
wird nicht der Buchstabe auf dem Papier radiert.
Stattdessen nimmt Python ein frisches, neues Blatt Papier und stempelt den modifizierten Text darauf!
name = "python" # ❌ Falsch: Einzelnes Zeichen überschreiben geht nicht! # name[0] = "P" -> TypeError: 'str' object does not support item assignment # ✅ Richtig: Die Methode liefert einen NEUEN String zurück, den wir neu zuweisen: name = name.capitalize() # name ist jetzt "Python"
2. 🧰 Das große String-Methoden Cheat-Sheet
Hier siehst du die wichtigsten Methoden für deine tägliche Textverarbeitung im Überblick:
A. Groß- & Kleinschreibung
t = "hallo welt" print(t.upper()) # -> "HALLO WELT" (alles GROSS) print(t.lower()) # -> "hallo welt" (alles klein) print(t.capitalize()) # -> "Hallo welt" (nur erstes Zeichen groß) print(t.title()) # -> "Hallo Welt" (jedes Wort groß)
B. Leerzeichen bereinigen (.strip)
roh = " max_mustermann \n " print(roh.strip()) # -> "max_mustermann" (entfernt Leerzeichen & Umbrüche an beiden Enden) print(roh.lstrip()) # -> entfernt nur links print(roh.rstrip()) # -> entfernt nur rechts
C. Suchen, Zählen & Ersetzen
satz = "Python ist super und Python macht Spaß" # Ersetzen: neu = satz.replace("Python", "Coding") # Ersetzt alle Vorkommen # Zählen & Suchen: print(satz.count("Python")) # -> 2 print(satz.find("super")) # -> Index 11 (-1 falls nicht vorhanden) print(satz.startswith("Python")) # -> True print(satz.endswith("Spaß")) # -> True
D. Zerlegen (.split) & Zusammenfügen (.join)
# 1. An Trennzeichen zerlegen: csv = "Anna;17;Wien" spalten = csv.split(";") # -> ["Anna", "17", "Wien"] # 2. Ohne Parameter zerlegt .split() an beliebigen Whitespaces: woerter = " Python macht Spaß ".split() print(woerter) # -> ["Python", "macht", "Spaß"] # 3. Liste wieder zu einem formatierten String verknüpfen: liste = ["Rot", "Grün", "Blau"] farben_text = ", ".join(liste) # -> "Rot, Grün, Blau"
3. 🌟 Praxisbeispiel: Palindrom & Text-Bereinigung
Ein Palindrom ist ein Text, der vorwärts wie rückwärts identisch ist (z.B. "Dreh mal am Herd"). Mit String-Methoden und Slicing ist die Prüfung ein Kinderspiel:
def pruefe_palindrom(text): # 1. Alles in Kleinbuchstaben umwandeln: sauber = text.lower() # 2. Leerzeichen entfernen: sauber = sauber.replace(" ", "") # 3. Mit der Umkehrung (Slicing [::-1]) vergleichen: return sauber == sauber[::-1] print(pruefe_palindrom("Anna")) # -> True print(pruefe_palindrom("Dreh mal am Herd")) # -> True print(pruefe_palindrom("Python")) # -> False
4. 🎯 Deine Aufgaben in aufgabe.py
Öffne die Datei g08_textverarbeitung_und_strings/aufgabe.py und löse die 5 Aufgaben:
💡 Lösungshinweise (Aufklappen bei Bedarf)
🔍 Tipp zu TODO 3 (Benutzernamen bereinigen)
def bereinige_benutzernamen(name): return name.strip().lower().replace(" ", "_")
🔍 Tipp zu TODO 5 (Kreditkarte maskieren)
def maskiere_kreditkarte(nummer): if len(nummer) <= 4: return nummer return "*" * (len(nummer) - 4) + nummer[-4:]
5. 🧪 Lösung überprüfen
Führe im Terminal folgenden Befehl aus:
python3 test_aufgabe.py