Indizierung und Slicing
Strings sind Sequenzen: Jeder Buchstabe hat eine Position (einen Index). Python verwendet nullbasierte Indizierung, daher befindet sich das erste Zeichen an Index 0. Einzelne Zeichen können mit Indizierung und Zeichenbereiche mit Slicing entnommen werden.
Indizierung
Eckige Klammern mit einer einzelnen Position verwenden.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Negative Indizes zählen vom Ende her.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
Indexierung muss eine vorhandene Position treffen, andernfalls tritt ein IndexError auf.
12s = "python" print(s[10]) # IndexError: string index out of range
Außerdem sind Zeichenketten unveränderlich, daher kann s[i] gelesen, aber nicht zugewiesen werden.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Slicing
Ein Slice verwendet start:stop:step und gibt eine neue Zeichenkette zurück. stop ist exklusiv (wird nicht eingeschlossen).
12345s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)
Slices sind fehlertolerant: Bereiche außerhalb der Grenzen werden einfach auf gültige Werte gekürzt (kein Fehler).
12s = "python" print(s[0:100]) # 'python'
Negative Indizes und Umkehren
Negative Indizes können in Slices kombiniert werden, und ein negativer step läuft rückwärts.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step darf nicht 0 sein. Das Weglassen von step bedeutet 1. Das Weglassen von start oder stop bedeutet "vom Anfang" / "bis zum Ende".
1. Welchen Wert gibt dieser Code aus?
2. Welchen Wert gibt dieser Code aus?
3. Welche Anweisung verursacht einen Fehler bei u = "hello"?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain more about how slicing works with different step values?
What happens if I use both negative start and stop indices in a slice?
Can you show more examples of string indexing and slicing?
Awesome!
Completion rate improved to 5.26
Indizierung und Slicing
Swipe um das Menü anzuzeigen
Strings sind Sequenzen: Jeder Buchstabe hat eine Position (einen Index). Python verwendet nullbasierte Indizierung, daher befindet sich das erste Zeichen an Index 0. Einzelne Zeichen können mit Indizierung und Zeichenbereiche mit Slicing entnommen werden.
Indizierung
Eckige Klammern mit einer einzelnen Position verwenden.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Negative Indizes zählen vom Ende her.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
Indexierung muss eine vorhandene Position treffen, andernfalls tritt ein IndexError auf.
12s = "python" print(s[10]) # IndexError: string index out of range
Außerdem sind Zeichenketten unveränderlich, daher kann s[i] gelesen, aber nicht zugewiesen werden.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Slicing
Ein Slice verwendet start:stop:step und gibt eine neue Zeichenkette zurück. stop ist exklusiv (wird nicht eingeschlossen).
12345s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)
Slices sind fehlertolerant: Bereiche außerhalb der Grenzen werden einfach auf gültige Werte gekürzt (kein Fehler).
12s = "python" print(s[0:100]) # 'python'
Negative Indizes und Umkehren
Negative Indizes können in Slices kombiniert werden, und ein negativer step läuft rückwärts.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step darf nicht 0 sein. Das Weglassen von step bedeutet 1. Das Weglassen von start oder stop bedeutet "vom Anfang" / "bis zum Ende".
1. Welchen Wert gibt dieser Code aus?
2. Welchen Wert gibt dieser Code aus?
3. Welche Anweisung verursacht einen Fehler bei u = "hello"?
Danke für Ihr Feedback!