Mit Text arbeiten · Übung
Strings liefern neue Werte
Die String-Methoden, die du bisher verwendet hast, geben Strings zurück. Sie verändern den ursprünglichen String-Wert nicht.
original = "quiet"
uppercase = original.upper()
print(original)
print(uppercase)
Die Ausgabe lautet:
quiet
QUIET
original verweist weiterhin auf "quiet". Die Methode hat einen separaten String in Großbuchstaben zurückgegeben, der uppercase zugewiesen wurde.
Strings sind unveränderbar
Python-Strings sind unveränderbar. Sobald ein bestimmter String-Wert existiert, ändern sich seine Zeichen nicht direkt an Ort und Stelle.
Eine Operation kann einen anderen String erzeugen. Einer Variablen kann dann dieser Rückgabewert neu zugewiesen werden:
message = "hello"
message = message.upper()
Die Variable message verweist zuerst auf "hello" und dann auf den neuen String "HELLO". Der ursprüngliche String wurde nicht Zeichen für Zeichen bearbeitet.
Dieser Unterschied wird wichtig, wenn du in Kapitel 6 Listen kennenlernst. Eine Liste ist veränderbar und kann direkt an Ort und Stelle geändert werden.
Ersetze einen Teil eines Strings
Die Methode .replace() gibt einen String zurück, in dem ausgewählter Text ersetzt wurde:
replace() erhält zwei Argumente:
den Text, der gesucht werden soll;
den Ersatztext.
Der ursprüngliche Satz bleibt "I like tea.". Der zurückgegebene String lautet "I like coffee.".
Wenn der gesuchte Text nicht vorkommt, gibt .replace() einen String mit denselben Zeichen zurück. Es meldet keinen Fehler.
Ignoriere den Rückgabewert nicht
Dieser Aufruf berechnet einen neuen String, speichert ihn aber nicht und gibt ihn auch nicht aus:
word = "cat"
word.replace("c", "h")
word verweist danach weiterhin auf "cat".
Was gibt dieses Programm aus?
word = "cat"
word.replace("c", "h")
print(word)Beobachte die Unveränderbarkeit
Mit Step im Übungseditor kannst du original und updated im Bereich Locals vergleichen, bevor eine der Ausgabeanweisungen läuft. Nach dem Ersetzen enthalten sie "red balloon" und "blue balloon". Der geänderte Wert ist separat gespeichert, der ursprüngliche String bleibt verfügbar.
Behalte eine ursprüngliche und eine aktualisierte Variante
Das Startprogramm beschreibt einen roten Ballon.
Ersetze den leeren String, sodass updated den Rückgabewert eines Aufrufs von .replace() auf original erhält. Ändere red in blue.
Lass original unverändert. Die Ausgabe muss so aussehen:
Original: red balloon
Updated: blue balloon
Diese Übung prüft eine wichtige Gewohnheit: Wenn eine String-Operation einen Wert zurückgibt, den du brauchst, weise ihn einer Variablen zu.
Aufgabe
Erstelle updated mit .replace() auf original und ersetze dabei red durch blue.
Erzeuge diese Ausgabe:
Original: red balloon
Updated: blue balloon
Verwende Step im Übungseditor. Vergleiche nach der Ersetzungszuweisung original (red balloon) und updated (blue balloon) in Locals. Gehe dann durch die Ausgabeanweisungen und beobachte, wie die beiden Zeilen erscheinen.