Fachkonzept - Zeichenkette

Datentyp Zeichenkette

Wir benutzen Zeichenketten, um Folgen von Zeichen als Daten zu erfassen.

Eine Zeichenkette ist eine (evtl. leere) Folge von Zeichen (aus einer vorgegebenen Zeichenmenge), die zu einer Dateneinheit zusammengefasst ist. Der Datentyp Zeichenkette beschreibt die Menge der möglichen Zeichenketten zusammen mit den Operationen, die mit Zeichenketten vorgesehen sind.

Darstellung von Zeichenketten in Python

Zeichenketten werden in Python durch Datenobjekte vom Typ str dargestellt. Python bietet eine Reihe von Möglichkeiten an, Zeichenketten zu erzeugen. Für kürzere Zeichenketten benutzt man Hochkommata oder Anführungszeichen. Beide Varianten sind in Python gleichwertig.

>>> z1 = 'Hallo'
>>> z1
'Hallo'
>>> type(z1)

>>> z2 = "Hallo"
>>> z2
'Hallo'
>>> type(z2)

Beachte, dass man auch eine leere Zeichenkette bilden kann.

>>> z = ''
>>> z

Wenn man längere Texte darstellen will, so lässt sich dies in Python mit 3 aufeinanderfolgenden Anführungszeichen oder Hochkommata erledigen.

>>> text = """Dieser
... Text geht
... über mehrere
... Zeilen."""
>>> text
'Dieser\nText geht\nüber mehrere\nZeilen.'
>>> print(text)
Dieser
Text geht
über mehrere
Zeilen.

Zeichenkette als sequenzielles Datenobjekt

Eine Zeichekette ist ein sequenzielles Datenobjekt, das aus einer Folge einzelner Zeichen besteht. Die Elemente eines solchen sequenziellen Datenobjekts sind der Reihe nach durchnummeriert. Die Nummerierung beginnt dabei mit 0. Die Nummer eines Zeichens wird auch Index genannt.

Zeichenkette

Zugriff auf Elemente einer Zeichenkette

Der Zugriff erfolgt über den Index des sequenziellen Datenobjekts. Wenn die Variable klartext eine Zeichenkette verwaltet, dann beschreibt der Ausdruck klartext[i] das Zeichen mit dem Index i.

>>> klartext = 'HALLO'
>>> klartext[0]
'H'
>>> klartext[1]
'A'
>>> klartext[4]
'O'

Beachte, dass ein Zugriff auf ein nicht existierendes Element zu einer Fehlermeldung führt.

>>> klartext = 'HALLO'
>>> klartext[5]
Traceback (most recent call last):
  ...
    klartext[5]
IndexError: string index out of range

Beachte auch, dass in Python nur ein lesender Zugriff auf einzelne Zeichen einer Zeichenkette möglich ist. Abändern kann man einzelne Zeichen einer Zeichenkette mit Hilfe von Zuweisungen nicht.

>>> klartext = 'HALLO'
>>> klartext[1] = 'E'
Traceback (most recent call last):
  ...
    klartext[1] = 'E'
TypeError: 'str' object does not support item assignment

Eine veränderte Zeichenkette erhält man nur, indem man eine neue Zeichenkette mit dem +-Operator aufbaut.

Aneinanderhängen von Zeichenketten

Mit dem +-Operator kann man Zeichenketten aneinanderhängen.

>>> 'Ast' + 'erix'
'Asterix'
>>> vorname = 'Julius'
>>> nachname = 'Caesar'
>>> name = vorname + ' ' + nachname
'Julius Caesar'

Diesen +-Operator kann man verwenden, wenn man eine neue Zeichenkette aufbauen möchte:

>>> klartext = 'HALLO'
>>> klartextNeu = ''
>>> klartextNeu = klartextNeu + klartext[0]
>>> klartextNeu = klartextNeu + 'E'
>>> klartextNeu = klartextNeu + klartext[2]
>>> klartextNeu = klartextNeu + klartext[3]
>>> klartextNeu = klartextNeu + klartext[4]
>>> klartextNeu
'HELLO'

Länge einer Zeichenkette

Die Länge einer Zeichenkette erhält man mit dem len-Operator.

>>> klartext = 'HALLO'
>>> len(klartext)
5
>>> klartext = ''
>>> len(klartext)
0

Eine Zeichenkette durchlaufen

Wenn man alle Zeichen einer Zeichenkette verarbeiten möchte, lässt sich das wie folgt mit einer SOLANGE-Wiederholung realisieren:

# klartext = ...
i = 0
while i < len(klartext):
    # verarbeite klartext[i]
    i = i + 1

Hier durchläuft man die Zeichenkette über den Index der einzelnen Elemente.

In Python können sequenzielle Datenobjekte auch mit einer for-Anweisung durchlaufen werden:

# klartext = ...
for zeichen in klartext:
    # verarbeite zeichen
X

Fehler melden

X

Suche