Seite 1 von 1

Caesar Verschlüsselung

Verfasst: Sonntag 15. März 2020, 09:24
von Clemens29
Moin!
Ich habe die Aufgabe eine Caesar Verschlüsselung zu schreiben. Es soll eine Abfrage stattfinden, bei der man seinen Verschlüsselungsfaktor eingeben soll, soweit so gut, jedoch soll eine zweite Bedingung auftreten, wenn man anstatt des Verschlüsselungsfaktors "Q" eingibt soll das Programm beendet werden. Bei jedem anderen Buchstaben in der Abfrage soll das Programm erneut nach dem Verschlüsselungsfaktor fragen.
Ich stehe leider etwas auf dem Schlauch. Mein bisheriger Code sieht so aus:


Nachricht=input("Bitte geben Sie Ihre Nachricht ein: ")
Verschlüsselung=input("Bitte geben Sie Ihre Verschlüsselung ein: ")



Alphabet='abcdefghijklmnopqrstuvwxyz'
a=len(Nachricht)
b=""
c=""

for i in Nachricht:
Stelle=Alphabet.find(i)
Stelle2=(Stelle + Verschlüsselung) %26
b+=Alphabet[Stelle2]

print("Ihre verschlüsselte Nachricht lautet:" ,b)



for i in b:
Stel1=Alphabet.find(i)
Stel2=(Stel1 - Verschlüsselung) %26
c+=Alphabet[Stel2]


print("Ihre entschlüsselte Nachricht lautet:" ,c)

Re: Caesar Verschlüsselung

Verfasst: Sonntag 15. März 2020, 10:35
von sparrow
Du kannst es dir und dem Leser einfacher machen, indem du dich an die in Python üblichen Konventionen hälst:

Variablennamen schreibt man per Konvention in Python klein_mit_untersrich, die Namen von Klassen schreibt man MixedCase, Konstanten KOMPLETT_GROSS.

Gib Variablen aussagekräftige Namen. Kürze sie nicht kryptisch ab, benutze nicht nur einen Buchstaben.

a wird definiert aber nie benutzt.


Du muss die Eingabe des Benutzers auf bestimmt Bedingungen prüfen.
Wenn du Eingabe und Prüfung in eine Schleife steckst, kannst du anhand dieser Bedingungen definieren, wann die Schleife verlassen wird. Wenn nicht, kommt er neut die Abfrage.

Du brauchst also eine while-Schleife, in der du mit if die Bediungen prüfst.

Re: Caesar Verschlüsselung

Verfasst: Sonntag 15. März 2020, 15:24
von /me
Statt `Alphabet='abcdefghijklmnopqrstuvwxyz'` würde ich ja Folgendes verwenden:

Code: Alles auswählen

import string
alphabet = string.ascii_lowercase