MINT üben

Zeichenketten verarbeiten

Dreißig Übungen zu Zeichenketten — von Index und Slicing über Methoden bis zur Fehlersuche.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Übungen in gemischter Reihenfolge — du klickst, ziehst, ordnest, rechnest und knobelst. Jede Übung gibt dir sofort eine Rückmeldung, und zu jeder Aufgabe gibt es zwei gestufte Tipps: Der erste zeigt die Richtung, der zweite den entscheidenden Schritt. Die Chips zeigen das Anforderungsniveau: AFB I heißt wiedergeben und direkt anwenden, AFB II selbst entscheiden und verknüpfen, AFB III begründen, beurteilen oder eine Falle durchschauen. Aufgaben mit dem Chip Mix verbinden Wissen aus früheren Unterkapiteln, bei Trick steckt eine Falle drin. Fährst du über ein unterstrichenes Arbeitswort, siehst du, was es genau von dir verlangt.

A1
Mix: Text, Zahl oder Fehler?
AFB IIMix

Untersuche, was jeder Ausdruck liefert — einen String, eine ganze Zahl oder eine Fehlermeldung — und sortiere die Karten in den passenden Korb.

Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1str
2int
3Fehler
"7" + 3 mischt Text und Zahl (TypeError), "Tor"[3] liegt hinter dem Ende (IndexError), und minus gibt es für Strings nicht. len liefert immer eine Zahl, Indizes liefern ein Zeichen, also einen String.
Frage zuerst: Ist ein Ausdruck überhaupt erlaubt, oder verbindet er Text und Zahl?
len liefert eine Zahl, ein Index ein einzelnes Zeichen (also einen String); "Tor"[3] gibt es nicht.
A2
Wo steht der Strich?
AFB IIMix

Vermute, welche Ausgabe das Programm erzeugt, und wähle die passende Zeile.

Programm
a = "Radiergummi"
n = len(a) // 2
print(a[:n] + "-" + a[n:])
Klicke die passende Karte an und prüfe dann. Mit der Tastatur: Tab zur Karte, Enter auswählen.
Radiergummi hat 11 Zeichen, 11 // 2 ist 5. a[:5] ist „Radie“ und a[5:] „rgummi“; nichts geht verloren, weil sich beide Stücke an Index 5 treffen.
Berechne zuerst n mit der ganzzahligen Division.
a[:n] endet vor Index n, a[n:] beginnt bei Index n.
A3
Ändert das s?
AFB I

Beschreibe, ob die Zeile den Text in s tatsächlich ändert: Wische jede Zeile auf den Stapel „ändert s“ oder „ändert s nicht“.

Schiebe die oberste Karte auf den passenden Stapel: ziehen, einen der beiden Stapel-Knöpfe drücken oder auf der Karte ←/→. Eine abgelegte Karte holst du mit Klick oder Enter zurück. „Prüfen“ schickt falsch abgelegte Karten mit einem Hinweis zurück in den Stapel.
s = s.upper()
s.upper()
s = s + "!"
print(s[0])
s.replace("a", "o")
s = s[1:]
Strings sind unveränderbar: Methoden und Slicing liefern neue Strings. Nur mit s = … wird das Ergebnis gespeichert.
Frage bei jeder Zeile: Steht links ein Gleichheitszeichen mit s?
Ohne Zuweisung wird das Ergebnis berechnet und gleich wieder vergessen.