Ich bin eine Caesar-Chiffre. Der Schlüssel ist eine ganze Zahl von 1 bis 25. Diese Chiffre rotiert die Buchstaben des Alphabets (A bis Z). Die Kodierung ersetzt jeden Buchstaben durch den 1. bis 25. nächsten Buchstaben im Alphabet (Z von A umwickeln). Also verschlüsselt der Schlüssel 2 "HI" mit "JK", aber der Schlüssel 20 verschlüsselt "HI" mit "BC".Zurück zum Anfang einer Zeichenfolge
Aber wenn ich "Ich bin super" eingeben, wird es "k kc oouwrgt" ausgeben, wenn es "k co uwrgt" mit einer Taste von 2 sein soll. Es wird auch nicht zum Anfang des Alphabets zurückkehren zB 'x' geht nicht zu 'a' mit einem Schlüssel von 2. ich benutze python 3.4.1
encode = []
a = "abcdefghijklmnopqrstuvwyxz"
a = list(a)
print(a)
e = input("encode or decode --->")
text = input("Sentence -->").lower()
text = list(text)
print(text)
Key = int(input("Key -->"))
if Key > 25:
print("Too high")
else:
print(Key)
if e == "encode":
for i, item in enumerate(text):
if item == " ":
encode.append(letter)
else:
num = a.index(item)
num = num + int(Key)
letter = a[num]
encode.append(letter)
for i in range(len(encode)):
print(encode[i])
'a [Key:] + a [: Key]' ist ein cooler Trick, es funktioniert auch mit negativen Indizes zum Decodieren. –
@EricDuminil: oder einfach 'str.translate (a [Key:] + a [: Key], a)'. –
Das ist großartig, danke, dass du dir die Zeit genommen hast, es zu erklären :) – jennmaurice