#!/usr/bin/python3 # -*- coding: utf8 -*- BW = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12, 'M': 13, 'N': 14, 'O': 15, 'P': 16, 'Q': 17, 'R': 18, 'S': 19, 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24, 'Y': 25, 'Z': 26} UBW = {v: k for k, v in BW.items()} text = "12 34567890abc defghijklmnopqr, stuvwxyz5ABCDEFGHI JKLMNOPQRSTUVWXYZ" # 2468024680LOORTVXZBDFHJLNPRTVXZBDFHJLNPRTVXZBDFHJLNPRTVXZBDFHJ encoded_text = "" vz = 1 # verschiebezähler for i in text: if i.upper() not in BW: try: az = int(i) except: encoded_text += i else: ba = (az + vz) % 10 encoded_text += str(ba) vz += 1 else: b1 = BW[i.upper()] ba = (b1 + vz) % 26 if ba == 0: ba = 26 if i == i.upper(): encoded_text += UBW[ba] else: encoded_text += UBW[ba].lower() vz += 1 text = encoded_text # zum überprüfen decoded_text = "" vz = 1 # verschiebezähler for i in text: if i.upper() not in BW: try: az = int(i) except: decoded_text += i else: ba = (az - vz) % 10 decoded_text += str(ba) vz += 1 else: b1 = BW[i.upper()] ba = (b1 - vz) % 26 if ba == 0: ba = 26 if i == i.upper(): decoded_text += UBW[ba] else: decoded_text += UBW[ba].lower() vz += 1 print(encoded_text) print(decoded_text)