Bei der Cäsar-Verschlüsselung wird jeder Buchstabe einer Nachricht einfach immer um eine bestimmte Entfernung k nach rechts „verschoben“. Ist z. B. k = 3, so würde aus dem Wort „CAESAR“ das Wort „FDHVDU“ werden, da C zu F wird, A zu D und immer so weiter. Es wird also gewissermaßen auf jeden Buchstaben eine Zahl k „addiert“. Dabei handelt es sich um eine zyklische Addition. Das heisst, dass man wieder bei A beginnt, wenn man über den Buchstaben Z hinauskommt.
Um einen so verschlüsselten Geheimtext zu entschlüsseln, wendet man dasselbe Verfahren an, nur dass man nicht k addiert, sondern k subtrahiert (im Spezialfall k = 13 erhält man so das ROT13-Verfahren, bei es egal ist, ob man addiert oder subtrahiert).
Schreibe eine Funktion, die ein mit dem Cäsar-Verfahren verschlüsseltes Wort wieder entschlüsselt und das entschlüsselte Wort zurückgibt. Das verschlüsselte Wort wird als Parameter s
in die Funktion übergeben, der zur Verschlüsselung verwendete Wert k
ebenfalls.
Hinweise: Das Argument, das in s
übergeben wird, enthält ausschließlich Großbuchstaben von A bis Z (es enthält keine Leerzeichen oder sonstigen Sonderzeichen). Für den Wert k
gilt: 0 < k
< 26.
Beispiel
Eingabe:
k = 3
s = "WRSVHFUHW"
Ausgabe:
"TOPSECRET"
Erklärung: Alle Buchstaben werden um 3 Positionen im Alphabet nach links verschoben (da wir entschlüsseln) und so entsteht das Lösungswort.
Falls du Probleme hast, diese Aufgabe zu lösen, kannst du dir einen Hinweis geben lassen:
class Task: def decode_caesar(self, s, k): # Ersetze 'pass' durch deine Lösung pass