Mit Text arbeiten · Übung
Finde Zeichen anhand ihrer Position
Weil ein String geordnet ist, kann Python ein Zeichen an einer bestimmten Position abrufen.
word = "garden"
first_character = word[0]
print(first_character)
Die eckigen Klammern fragen nach dem Wert an einem Index. Die Ausgabe lautet g.
Python zählt ab null
Die Zeichen in "garden" haben diese Indizes:
| Zeichen | g | a | r | d | e | n |
|---|---|---|---|---|---|---|
| Index | 0 | 1 | 2 | 3 | 4 | 5 |
Das erste Zeichen steht am Index 0, nicht am Index 1. Das heißt nullbasierte Indizierung.
print(word[0])
print(word[1])
print(word[5])
Das gibt g, a und n aus.
Der Index ist eine ganze Zahl. word["1"] funktioniert nicht, weil der String "1" keine Indexzahl ist.
Zähle mit negativen Indizes rückwärts
Python lässt dich auch vom Ende her zählen:
print(word[-1])
print(word[-2])
Index -1 bedeutet das letzte Zeichen. Index -2 bedeutet das Zeichen davor. Die Ausgabe lautet n und e.
Negative Indizes sind besonders nützlich, wenn du die Länge des Strings nicht im Voraus kennst.
Ein Index muss existieren
"garden" hat sechs Zeichen mit den Indizes 0 bis 5. Wenn du word[6] anforderst, meldet Python:
IndexError: string index out of range
Python hat die Indexoperation verstanden, aber diese Position existiert nicht.
Ein leerer String hat weder ein erstes noch ein letztes Zeichen. Deshalb verlangt das Kapitelprojekt ausdrücklich einen nicht leeren Text.
Was gibt dieses Programm aus?
word = "code"
print(word[1])Finde die Enden eines Worts
Ersetze die beiden leeren Strings durch Zeichen aus language, die du über ihren Index abrufst:
first_charactersoll das erste Zeichen enthalten;last_charactersoll das letzte Zeichen enthalten.
Verwende Index 0 für das erste Zeichen und einen negativen Index für das letzte. Die Ausgabe muss so aussehen:
First: P
Last: n
Aufgabe
Weise first_character mit Index 0 das erste Zeichen von language zu. Weise last_character mit Index -1 das letzte Zeichen zu.
Erzeuge diese Ausgabe:
First: P
Last: n