Dein Algorithmus ist ziemlich umständlich und mit den vielen, vielen Tests schlecht nachvollziehbar.
Schneller und einfacher geht es, wenn Du die Funktionen ord und chr für die Umwandlung in ASCII-Code und zurück nutzt.
Befindet sich der Klartext im String klar und soll der Geheimtext in den string geheim sowie die Verschiebungsweite in v (integer), so kann ein einzelner Buchstabe wie folgt verändert werden:
Der Algorithmus funktioniert hier für Kleinbuchstaben und kann auch auf andere Bereiche angepasst werden.
Der scheinbare "Trick" beruht darin, dass mittels mod 26 die Zahl n immer im Bereich von 'a' bis 'z' gehalten wird.
Beste Grüße
Mathematiker