Python-Kurs / Strings mit Indizes, Slices und Textmethoden bearbeiten
Eine Zeichenkette ist ein geordneter Textwert, aus dem Sie mit Indizes und Slices einzelne Teile lesen können. Strings sind unveränderlich: Methoden wie strip() und replace() liefern einen Ergebniswert, den Sie verwenden oder zuweisen müssen, statt den Originaltext direkt zu ändern.
Positionen und Grenzen von Ausschnitten verstehen
Der Index 0 bezeichnet das erste Element, -1 das letzte. Ein Slice text[start:stop] enthält den Anfang, endet jedoch vor stop. Speichern Sie dieses vollständige kleine Beispiel als positions.py und starten Sie python positions.py mit Ihrem Projektinterpreter:
text = "Python"
print(text[0], text[-1], text[1:4])
Die Ausgabe lautet P n yth: text[1:4] nimmt die Positionen 1, 2 und 3. Ein direkter Zugriff wie text[99] scheitert bei diesem Wort mit IndexError. text[1:99] liefert dagegen den verfügbaren Rest ython. Ein leerer String hat auch kein Element an Position null.
len(text) zählt bei einem Python-String Unicode-Codepunkte und nicht UTF-8-Bytes. Ein sichtbares Zeichen kann aus mehreren Codepunkten bestehen, zum Beispiel ein Buchstabe mit einem separat gespeicherten kombinierenden Akzent oder bestimmte Emojis. Eine Position in einem String ist daher nicht in jedem Fall eine vollständige sichtbare Buchstabeneinheit. Die Dokumentation zum Texttyp str beschreibt seine Operationen.
Eine vollständige Eingabe bereinigen und formatieren
Speichern Sie den gesamten folgenden Inhalt in strings.py, in UTF-8, im Übungsordner. Zusätzliche Dateien und Pakete sind nicht nötig. Führen Sie python strings.py mit dem ausgewählten Projektinterpreter aus; unter macOS oder Ubuntu kann außerhalb einer aktivierten Umgebung python3 der passende Startbefehl sein.
raw = " lunch,8000 "
clean = raw.strip()
name, amount_text = clean.split(",")
amount = int(amount_text)
print(clean)
print(name.upper())
print(f"{name}: {amount:,} KRW")
print("-".join(["2026", "10", "17"]))
Erwartete Ausgabe:
lunch,8000
LUNCH
lunch: 8,000 KRW
2026-10-17
raw enthält zunächst Text mit Leerzeichen an beiden Enden. strip() entfernt diese äußeren Zeichen und liefert den Wert für clean. split(",") trennt den bekannten Text am Komma in zwei Teile, die an name und amount_text zugewiesen werden. Danach macht int aus dem Betragstext eine ganze Zahl.
upper() liefert die Großschreibung LUNCH, ändert aber name nicht; die folgende Ergebniszeile enthält deshalb weiterhin lunch. Der Formatteil :, zeigt den Betrag mit Komma als Tausendertrennzeichen an. Das ist keine automatische deutsche Zahlenformatierung. KRW steht für südkoreanische Won; das Beispiel führt keine Währungsumrechnung aus.
Die letzte Zeile verbindet drei bereits vorhandene Zeichenketten mit einem Bindestrich. Das Ergebnis 2026-10-17 entsteht aus diesen festen Werten; der Code fragt weder das aktuelle Datum ab noch überprüft er, ob beliebige Datumsbestandteile gültig sind.
Trennen, Verbinden und Formatieren passend einsetzen
split() erzeugt eine Liste von Textteilen. Bei separator.join(...) legt der String vor dem Punkt das Trennzeichen fest. Alle zu verbindenden Elemente müssen Strings sein; "-".join([2026, 10, 17]) scheitert mit TypeError. Wandeln Sie Zahlen bewusst um, wenn sie in einen Text gehören.
Das gezeigte Eingabeformat enthält genau zwei durch ein Komma getrennte Felder. Fehlt das Komma oder kommt ein weiteres hinzu, passt die Anzahl der Teile nicht zu den beiden Zielvariablen und die Zuweisung scheitert. Ein erfolgreiches Trennen prüft außerdem nicht automatisch, ob Name und Betrag fachlich zulässig sind.
split(",") versteht keine CSV-Anführungszeichen und keine mehrzeiligen CSV-Felder. Ein Name wie "coffee, shop" enthält innerhalb der Anführungszeichen ein Komma, das in CSV zum Feld gehören kann. Dafür verwenden Sie einen passenden CSV-Parser, etwa das csv-Modul der Standardbibliothek, und legen dessen Trennzeichen und Format fest.
Eine f-Zeichenkette eignet sich für lesbare Ausgabetexte. Externe Eingaben sollten Sie damit nicht in SQL-Anweisungen einsetzen. Werte gehören in die Parameterbindung der jeweiligen Datenbankschnittstelle; das ist eine andere Aufgabe als das Formatieren eines Satzes. Die SQLite-Anleitung zu SQL-Parametern zeigt dieses Prinzip für eine konkrete Python-Schnittstelle.
Den Originalwert behalten und Fehler gezielt prüfen
Ein alleiniger Aufruf von raw.strip() lässt den Wert von raw unverändert. Gleiches gilt für replace: Nutzen Sie den Rückgabewert. Mit Namen wie raw und clean bleibt sichtbar, welcher Text Original und welcher Ergebnis ist. Wenn eine Ersetzung beabsichtigt ist, schreiben Sie die Zuweisung ausdrücklich, etwa raw = raw.strip().
- Fügen Sie im vollständigen Beispiel nur weitere Leerzeichen vor und hinter
lunch,8000hinzu. Die Ausgabe soll unverändert bleiben. Stellen Sie den Ausgangstext wieder her. - Entfernen Sie das Komma zwischen
lunchund8000. Beim Zuweisen der Teile mussValueErrorauftreten. Setzen Sie das Komma wieder ein und prüfen Sie die Originalausgabe. - Führen Sie getrennt
text = "Python"und danachtext[0] = "J"aus. Die zweite Anweisung muss wegen der Unveränderlichkeit mitTypeErrorscheitern. Wenn Sie einen anderen Text benötigen, erzeugen und verwenden Sie einen neuen String. - Rufen Sie bei einem Text mit äußeren Leerzeichen nur
strip()auf und geben Sie danach das Original mitrepraus. Sie sehen die weiterhin vorhandenen Leerzeichen. Speichern Sie anschließend das Ergebnis in einer eigenen Variablen und vergleichen Sie beide Werte.
Diese Methoden bearbeiten ein bekanntes Textformat. Die Anzahl der Felder, erlaubte Werte und Bedeutung der Daten sind zusätzliche Prüfungen. Trennen Sie deshalb Textbereinigung von Formatinterpretation und fachlicher Validierung.




