Appearance
Kapitel 8: String-Operationen
🎯 Lernziele
In diesem Kapitel lernst du:
- Strings verknüpfen und wiederholen
- Auf Teilstrings zugreifen (Slicing)
- String-Methoden verwenden
- Strings formatieren (f-strings)
8.1 Grundlegende String-Operationen
🔤 Strings definieren
python
# Verschiedene Möglichkeiten
name1 = 'Python' # Einfache Anführungszeichen
name2 = "Python" # Doppelte Anführungszeichen
text = """Mehrzeiliger
Text""" # Triple-Quotes für mehrzeilige Strings
print(name1)
print(text)➕ String-Verknüpfung (+)
python
vorname = "Max"
nachname = "Muster"
voller_name = vorname + " " + nachname
print(voller_name) # Max Muster
# Achtung: Strings und Zahlen können nicht direkt verknüpft werden!
alter = 25
# print("Alter: " + alter) # TypeError!
print("Alter: " + str(alter)) # Richtig: Alter: 25✖️ String-Wiederholung (*)
python
print("Ha" * 3) # HaHaHa
print("-" * 20) # --------------------📏 String-Länge (len())
python
text = "Python"
print(len(text)) # 6
# Mit Eingabe
name = input("Wie heißt du? ")
print(f"Dein Name hat {len(name)} Buchstaben")8.2 String-Zugriff und Slicing
🔢 Indexzugriff
python
text = "Python"
# Positiver Index (von links)
print(text[0]) # P (erstes Zeichen)
print(text[1]) # y
print(text[5]) # n (letztes Zeichen)
# Negativer Index (von rechts)
print(text[-1]) # n (letztes Zeichen)
print(text[-2]) # o
print(text[-6]) # P (erstes Zeichen)✂️ Slicing (Teilstrings extrahieren)
Syntax: string[start:ende:schritt]
python
text = "Python Programmierung"
# Einfaches Slicing
print(text[0:6]) # Python (Index 0 bis 5)
print(text[7:18]) # Programmierung
# Start oder Ende weglassen
print(text[7:]) # Programmierung (von 7 bis Ende)
print(text[:6]) # Python (von Anfang bis 5)
# Negativer Schritt (umdrehen)
print(text[::-1]) # gnugemmargorP nohtyP (umgekehrt)
# Jedes zweite Zeichen
print(text[::2]) # Pto rgamirn💡 Praxisbeispiel
python
# E-Mail-Adresse zerlegen
email = "max.muster@example.com"
benutzername = email[:email.index("@")]
domain = email[email.index("@")+1:]
print(f"Benutzername: {benutzername}") # max.muster
print(f"Domain: {domain}") # example.com8.3 String-Methoden (Hochfrequenz)
🔠 Groß-/Kleinschreibung
python
text = "Python Programmierung"
print(text.upper()) # PYTHON PROGRAMMIERUNG
print(text.lower()) # python programmierung
print(text.title()) # Python Programmierung (Jedes Wort groß)
print(text.capitalize()) # Python programmierung (Nur erster Buchstabe groß)🔍 Suchen und Ersetzen
python
text = "Python ist toll. Python ist einfach."
# Suchen (erstes Vorkommen)
print(text.find("Python")) # 0
print(text.find("Java")) # -1 (nicht gefunden)
# Ersetzen
neu_text = text.replace("Python", "Java")
print(neu_text) # Java ist toll. Java ist einfach.
# Alle Vorkommen zählen
print(text.count("Python")) # 2✂️ Leerzeichen entfernen
python
text = " Python "
print(text.strip()) # "Python" (beide Seiten)
print(text.lstrip()) # "Python " (nur links)
print(text.rstrip()) # " Python" (nur rechts)
# Auch für andere Zeichen
text2 = "!!!Python!!!"
print(text2.strip("!")) # "Python"🔪 Zerlegen und Zusammenfügen
python
# Split (String → Liste)
text = "Apfel,Banane,Orange"
früchte = text.split(",")
print(früchte) # ['Apfel', 'Banane', 'Orange']
satz = "Python ist toll"
wörter = satz.split()
print(wörter) # ['Python', 'ist', 'toll']
# Join (Liste → String)
früchte = ['Apfel', 'Banane', 'Orange']
text = ",".join(früchte)
print(text) # Apfel,Banane,Orange✅ Überprüfungsmethoden
python
# Verschiedene Prüfungen
print("Python".isalpha()) # True (nur Buchstaben)
print("123".isdigit()) # True (nur Zahlen)
print("Python123".isalnum()) # True (Buchstaben oder Zahlen)
print(" ".isspace()) # True (nur Leerzeichen)
print("PYTHON".isupper()) # True (nur Großbuchstaben)
print("python".islower()) # True (nur Kleinbuchstaben)8.4 String-Formatierung
🎨 Verschiedene Methoden
1. %-Formatierung (älter)
python
name = "Python"
alter = 25
print("Mein Name ist %s und ich bin %d Jahre alt." % (name, alter))2. .format()-Methode
python
name = "Python"
alter = 25
print("Mein Name ist {} und ich bin {} Jahre alt.".format(name, alter))
print("Mein Name ist {n} und ich bin {a} Jahre alt.".format(n=name, a=alter))3. f-strings (EMPFOHLEN - Python 3.6+)
python
name = "Python"
alter = 25
# Einfach und lesbar
print(f"Mein Name ist {name} und ich bin {alter} Jahre alt.")
# Berechnungen direkt im String
x = 10
y = 20
print(f"{x} + {y} = {x + y}") # 10 + 20 = 30
# Formatierungsoptionen
pi = 3.14159
print(f"Pi: {pi:.2f}") # Pi: 3.14 (2 Nachkommastellen)
# Ausrichtung
print(f"{'Python':10}") # Linksbündig (10 Zeichen)
print(f"{'Python':>10}") # Rechtsbündig
print(f"{'Python':^10}") # Zentriert8.5 Praxisbeispiele
📧 Beispiel 1: E-Mail-Validator (einfach)
python
email = input("Gib deine E-Mail ein: ")
if "@" in email and "." in email:
print("E-Mail scheint gültig zu sein.")
else:
print("Ungültige E-Mail-Adresse!")📞 Beispiel 2: Telefonnummer formatieren
python
# Eingabe: 017012345678
telefonnummer = input("Gib deine Nummer ein: ")
# Nur Ziffern behalten
nur_zahlen = ''.join(filter(str.isdigit, telefonnummer))
# Formatieren
if len(nur_zahlen) == 11:
formatiert = f"{nur_zahlen[:4]} {nur_zahlen[4:7]} {nur_zahlen[7:]}"
print(f"Formatierte Nummer: {formatiert}")
else:
print("Ungültige Nummernlänge!")🔐 Beispiel 3: Passwort-Überprüfung
python
passwort = input("Gib ein Passwort ein: ")
if len(passwort) < 8:
print("Passwort zu kurz (mindestens 8 Zeichen)")
elif not any(c.isdigit() for c in passwort):
print("Passwort muss mindestens eine Zahl enthalten")
elif not any(c.isupper() for c in passwort):
print("Passwort muss mindestens einen Großbuchstaben enthalten")
else:
print("Passwort ist sicher!")⚠️ Häufige Fehler
❌ Fehler 1: Strings sind unveränderlich
python
text = "Python"
# text[0] = "J" # TypeError! Strings können nicht verändert werden!
# Richtig: Neuen String erstellen
text = "J" + text[1:]
print(text) # Jython❌ Fehler 2: Index außerhalb des Bereichs
python
text = "Python"
# print(text[10]) # IndexError!
# Sicherer Zugriff
if len(text) > 10:
print(text[10])
else:
print("Index zu groß!")❌ Fehler 3: Vergessen, Strings in Zahlen umzuwandeln
python
# Falsch
# alter = input("Alter: ")
# print(alter + 1) # TypeError!
# Richtig
alter = int(input("Alter: "))
print(alter + 1) # 26 (wenn 25 eingegeben)📝 Zusammenfassung
In diesem Kapitel hast du gelernt:
- ✅ Strings zu definieren und zu verknüpfen
- ✅ Auf einzelne Zeichen zuzugreifen (Index)
- ✅ Teilstrings mit Slicing zu extrahieren
- ✅ Nützliche String-Methoden (upper, lower, find, replace, etc.)
- ✅ Strings mit f-strings zu formatieren
- ✅ Häufige Fehler zu vermeiden
🎯 Übung
- Schreibe ein Programm, das einen Satz rückwärts ausgibt
- Erstelle ein Programm, das überprüft, ob ein Wort ein Palindrom ist
- Schreibe ein Programm, das alle Vokale aus einem Text entfernt
- Formatiere einen Text als Tabelle mit f-strings (Ausrichtung)
⏭️ Nächstes Kapitel
In Kapitel 9 lernen wir Listen und Tupel - die wichtigsten Container für Daten!
