Caesar Verschlüsselung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Clemens29

Sonntag 15. März 2020, 09:24

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)
Benutzeravatar
sparrow
User
Beiträge: 1852
Registriert: Freitag 17. April 2009, 10:28

Sonntag 15. März 2020, 10:35

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.
Benutzeravatar
/me
User
Beiträge: 3362
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Sonntag 15. März 2020, 15:24

Statt `Alphabet='abcdefghijklmnopqrstuvwxyz'` würde ich ja Folgendes verwenden:

Code: Alles auswählen

import string
alphabet = string.ascii_lowercase
Antworten