Der Grund, warum dein Code nicht hingehaun hat ist, dass du mit einer for-schleife, die über einen String iteriert an die einzelnen Zeichen kommst. Was du allerdings zum entschlüsseln brauchst ist eine Sequenz von 16 Zeichen
Darum brauchst du slicing, wies bei roschis Code auch zu sehen ist.
Aber was ich grad sehe:
Code: Alles auswählen
if buchstabe in d:
neu = d[buchstabe]
else:
neu = buchstabe
geheimtext=geheimtext+neu
Das kann doch nicht so beabsichtigt sein?! Wenn ein Buchstabe kein gültiger Code ist, dann ist es doch eine falsche Eingabe und damit eine Ausnahme, die du raisen solltest.
Noch ein Tipp wegen der Lesbarkeit: Quetsch doch nich zwei Dictionary-Einträge in dieselbe Zeile, ein Eintrag pro Zeile ist besser lesbar.