Exkurs - Darstellung und Verarbeitung von Zeichenketten
Benötigtes Grundwissen
Bevor die Verschlüsselung von Texten nach dem Verschiebeverfahren implementiert werden kann, muss zunächst das hierfür benötigte Grundwissen über die Darstellung und Verarbeitung von Zeichenketten bereit gestellt werden. Weitere Information zu diesem Thema findest du im Abschnitt Zeichenketten und ihre Verarbeitung.
Aufgabe 1: Darstellung von Zeichenketten
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. Probiere das selbst aus.
>>> z1 = 'HALLOCAESAR'
>>> z1
'HALLOCAESAR'
>>> type(z1)
<class 'str'="">
>>> z2 = "Hallo Caesar"
>>> z2
'Hallo Caesar'
>>> type(z2)
<class 'str'="">
</class></class>
Beachte, dass man auch eine leere Zeichenkette bilden kann.
>>> z = ''
>>> z
Aufgabe 2: Zugriff auf einzelne Zeichen
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.
Der Zugriff auf die einzelnen Zeichen einer Zeichenkette erfolgt über den Index des 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
Teste selbst den Zugriff auf die Zeichen einer Zeichenkette.
Aufgabe 3: 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'
Probiere das selbst aus.
Aufgabe 4: 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
Teste selbst diese vordefinierte Funktion.
Aufgabe 5: Eine Zeichenkette durchlaufen
Wenn man alle Zeichen einer Zeichenkette verarbeiten möchte, lässt sich das wie folgt mit
einer while
-Schleife 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
-Schleife
durchlaufen werden:
# klartext = ...
for zeichen in klartext:
# verarbeite zeichen
Teste diese beiden Möglichkeiten. Alle Zeichen der Zeichenkette sollen einzeln mit einer print
-Anweisungen
auf dem Bildschirm ausgegeben werden.