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)
Caesar Verschlüsselung
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.
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.
Statt `Alphabet='abcdefghijklmnopqrstuvwxyz'` würde ich ja Folgendes verwenden:
Code: Alles auswählen
import string
alphabet = string.ascii_lowercase