Cäsar verschlüsselung hilfe
Verfasst: Sonntag 25. Mai 2014, 16:42
Hallo erstmal ,
ich bin relativ neu in Python und habe die Cäsar verschlüsselung ausprobiert und das hat ganz gut geklappt aber ein zwei Problemchen habe ich trotzdem noch
Mein erstes Problem ist das ich gerne das ganze Programm wiederholen würde sprich am ende gefragt wird ob nochmal und wenn ja dann halt von vorne und wenn nein dann beenden , aber das habe ich nicht geschafft ... ich habe meine Versuche aus dem Code rausgenommen weil peinlich und so
Mein zweites Problem ist das wenn der User die Anzahl der Verschiebungen eingeben soll und was falsches eingibt das Programm natürlich crasht das krieg ich leider auch nicht hin...
ich bin relativ neu in Python und habe die Cäsar verschlüsselung ausprobiert und das hat ganz gut geklappt aber ein zwei Problemchen habe ich trotzdem noch
Code: Alles auswählen
print("Willkommen zur Caesarchiffre!")
MAX_KEY_SIZE = 26
def getMode():
while True:
print('Wollen sie verschlüsseln(v) oder entschlüsseln(e) ?')
mode = input().lower()
if mode in 'verschlüsseln v entschlüsseln e'.split():
return mode
else:
print('Bitte geben sie entweder "v" zum verschlüsseln oder "e" zum entschlüsseln ein .')
def getMessage():
print('Geben sie ihre Nachricht ein:')
return input()
def getKey():
key = 0
while True:
print('Geben sie die Zahl der Verschiebung(en) an. (1-%s)' % (MAX_KEY_SIZE))
key = int(input())
if (key >= 1 and key <= MAX_KEY_SIZE):
return key
def getTranslatedMessage(mode, message, key):
if mode[0] == 'e':
key = -key
translated = ''
for symbol in message:
if symbol.isalpha():
num = ord(symbol)
num += key
if symbol.isupper():
if num > ord('Z'):
num -= 26
elif num < ord('A'):
num += 26
elif symbol.islower():
if num > ord('z'):
num -= 26
elif num < ord('a'):
num += 26
translated += chr(num)
else:
translated += symbol
return translated
mode = getMode()
message = getMessage()
key = getKey()
print('Ihr Text lautet:')
print(getTranslatedMessage(mode, message, key))
print("Noch einmal ? J/N")
again = input().lower()
if again in 'ja j'.split():
getMode
else:
quit
Mein zweites Problem ist das wenn der User die Anzahl der Verschiebungen eingeben soll und was falsches eingibt das Programm natürlich crasht das krieg ich leider auch nicht hin...