Direkt zum Hauptinhalt springen
eLearner.app
Modul 4 · Lektion 2 von 414/36 im Kurs~10 min
Lektionen des Moduls (2/4)

Slicing und Indizierung

In Python sind Strings Sequenzen von Zeichen: Du kannst über den Index auf einzelne Zeichen zugreifen und Teilstrings mit der Slice-Syntax [start:stop:step] herausschneiden — genau wie bei Listen.

Positive und negative Indizes

Python
s = "Python"
#    0123456
#   -6-5-4-3-2-1
s[0]    # 'P'
s[5]    # 'n'
s[-1]   # 'n'   (ultimo)
s[-2]   # 'o'   (penultimo)

Ein Zugriff außerhalb des Bereichs löst einen IndexError aus.

Slicing [start:stop:step]

Python
s = "Python"
s[0:3]    # 'Pyt'      indici 0,1,2 (stop ESCLUSO)
s[2:]     # 'thon'     dal 2 alla fine
s[:3]     # 'Pyt'      dall'inizio fino al 3 (escluso)
s[:]      # 'Python'   copia completa
s[-3:]    # 'hon'      ultimi 3
s[:-2]    # 'Pyth'     tutto tranne gli ultimi 2

Im Gegensatz zur Indizierung löst Slicing KEINE Fehler aus, wenn die Indizes außerhalb des Bereichs liegen: Es schneidet heraus, was möglich ist.

Das dritte Argument: step

Python
s = "Python"
s[::2]    # 'Pto'    salta uno sì uno no
s[1::2]   # 'yhn'    dispari
s[::-1]   # 'nohtyP' INVERSIONE (idiom famoso)

s[::-1] ist der direkte Weg, um einen String umzudrehen.

Länge und Enthaltensein

Python
len("Python")        # 6
"th" in "Python"     # True
"java" in "Python"   # False

Negative Indizes und Step beim Slicing

Die vollständige Syntax des Slicings lautet s[start:stop:step]. Wenn du start und stop weglässt, aber einen negativen step von -1 (s[::-1]) setzt, drehst du den String um. Der negative Index -1 steht immer für das letzte Zeichen des Strings, -2 für das vorletzte usw.

Probiere es aus

Übung#python.m4.l2.e1
Versuche: 0Wird geladen…

Gegeben sei `word = 'PROGRAMMAZIONE'`. Erhalte sein Gegenteil in `reversed_word`. Evaluiere `reversed_word`.

Editor wird geladen…
Hinweis anzeigen

word[::-1]

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#python.m4.l2.e2
Versuche: 0Wird geladen…

Gegeben sei `email = 'ada@example.com'`. Extrahiere die Domain (alles nach '@') in `domain` unter Verwendung von Slicing, nachdem du den Index mit .find gefunden hast. Evaluiere `domain`.

Editor wird geladen…
Hinweis anzeigen

email[email.find('@') + 1:]

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#python.m4.l2.e3
Versuche: 0Wird geladen…

Verwende bei dem String `word = "pythonista"` Slicing, um die ersten 3 Zeichen und die letzten 3 Zeichen zu extrahieren und sie zu einem neuen String `short_word` zu verketten. Evaluiere schließlich `short_word` (es sollte `'pytsta'` ergeben).

Editor wird geladen…
Hinweis anzeigen

Die ersten 3 Zeichen sind word[:3], die letzten 3 sind word[-3:]. Verkette die beiden Slices.

Lösung nach 3 Versuchen verfügbar