Arbeiten mit Strings in Python: Der vollständige Leitfaden
Grundlagen von Strings in Python
Strings sind in Python der fundamentale Datentyp für die Arbeit mit Textinformationen. Das Verständnis der String-Verarbeitung ist entscheidend für effizientes Programmieren.
Strings als Objekte vom Typ str
In Python sind Strings Objekte des integrierten Typs str. Sie repräsentieren Sequenzen von Unicode-Zeichen. Jeder String unterstützt eine Vielzahl eingebauter Methoden zur Textverarbeitung. Strings erlauben den Zugriff auf einzelne Zeichen über einen Index. Außerdem ermöglichen sie Vergleichs- und Sortieroperationen.
text = "Python"
print(type(text)) # <class 'str'>
print(len(text)) # 6
Das Prinzip der Unveränderlichkeit (Immutability)
Strings in Python sind unveränderliche Objekte. Das bedeutet, dass jede Transformationsoperation einen neuen String erzeugt. Der ursprüngliche String bleibt unverändert. Dieses Prinzip gewährleistet Datensicherheit und Code-Vorhersagbarkeit.
original = "hallo"
modified = original.upper()
print(original) # 'hallo' - unverändert
print(modified) # 'HALLO' - neuer String
Möglichkeiten zur String-Erstellung
Python bietet verschiedene Möglichkeiten, Strings zu erstellen:
- Einfache Anführungszeichen für einfache Strings
- Doppelte Anführungszeichen für Strings mit Apostrophen
- Dreifache Anführungszeichen für mehrzeiligen Text
- Raw-Strings zum Vermeiden von Escape-Sequenzen
einfach = 'einfacher String'
doppelt = "String mit 'Apostroph'"
mehrzeilig = """Erste Zeile
Zweite Zeile
Dritte Zeile"""
raw = r"pfad\zur\datei"
Indizierung und Slicing (Ausschnitte)
Zugriff auf Zeichen eines Strings
Jedes Zeichen in einem String hat einen eigenen Index. Die Indizierung beginnt bei Null. Python unterstützt sowohl positive als auch negative Indizierung.
text = "Python"
print(text[0]) # 'P' - erstes Zeichen
print(text[5]) # 'n' - letztes Zeichen
print(text[-1]) # 'n' - letztes über negativen Index
print(text[-6]) # 'P' - erstes über negativen Index
Erstellen von String-Ausschnitten (Slices)
Slices ermöglichen das Extrahieren von Teilstrings aus dem Original. Die Syntax lautet: string[anfang:ende:schritt]. Der Startindex wird eingeschlossen, der Endindex ausgeschlossen.
text = "Python Programmierung"
print(text[1:4]) # 'yth'
print(text[:6]) # 'Python'
print(text[7:]) # 'Programmierung'
print(text[::2]) # 'Pto rgamn' - jedes zweite Zeichen
print(text[::-1]) # 'gnureimmargorP nohtyP' - String umkehren
Praktische Anwendung der negativen Indizierung
Die negative Indizierung vereinfacht die Arbeit mit dem Ende eines Strings. Sie ist besonders nützlich bei der Verarbeitung von Dateien und Daten variabler Länge.
dateiname = "dokument.pdf"
erweiterung = dateiname[-4:] # '.pdf'
namensanteil = dateiname[:-4] # 'dokument'
Suchmethoden für Strings
Basis-Methoden zur Substring-Suche
Die Methode find() gibt den Index des ersten Vorkommens eines Substrings zurück. Wird der Substring nicht gefunden, wird -1 zurückgegeben. Die Methode rfind() sucht vom Ende des Strings.
text = "banana programmierung"
print(text.find("ana")) # 1
print(text.find("python")) # -1 (nicht gefunden)
print(text.rfind("ana")) # 3
print(text.find("a", 2)) # 3 (Suche ab Position 2)
Strenge Suchmethoden mit Ausnahmen
Die Methoden index() und rindex() funktionieren ähnlich wie find(). Sie lösen jedoch eine ValueError-Ausnahme aus, wenn der Substring nicht gefunden wird.
text = "banana"
print(text.index("n")) # 2
# print(text.index("z")) # ValueError: substring not found