battle ein römischer Herrscher, der für seine militärischen Strategien und seine hervorragende Führung bekannt battle. Die nach ihm benannte Caesar -Chiffre ist eine faszinierende kryptografische Technik, die Julius Caesar verwendet hat, um seinem Militärpersonal geheime Signale und Nachrichten zu senden.
Die Caesar -Chiffre ist in seiner Arbeit sehr einfach. Es funktioniert, indem alle Buchstaben der Nachricht verschoben werden, um durch eine feste Anzahl von Orten, die als Schlüssel bezeichnet werden, verschlüsselt zu werden. Die Individual, die es erhält, ist sich des Schlüssels bewusst und verwendet ihn, um die Nachricht zu entschlüsseln, wodurch eine einfache und intelligente Möglichkeit zur Durchführung privater Korrespondenz bietet.
Das Projekt verstehen
In diesem Artikel lernen wir, wie die Caesar -Chiffre in Python implementiert werden kann. Dies ist ein anfängerfreundliches Projekt, bei dem wir bedingte Aussagen, Schleifen und Funktionen verwenden, um Benutzereingabedaten zu codieren und zu dekodieren.
So wird das Programm funktionieren: Das Programm fordert den Benutzer auf, dass eine Nachricht codiert oder dekodiert wird. Der Benutzer wählt entweder Verschlüsselung oder Entschlüsselung. Das Programm fragt nach dem Schlüssel, mit dem die Nachricht verschlüsselt wird. Sobald der Benutzer den Schlüssel angibt, konvertiert das Programm die Nachricht, indem jeder Buchstabe der Nachricht gemäß dem Schlüssel konvertiert wird, indem die Buchstaben bei der Codierung oder bei der Entschlüsselung rückwärts verschoben werden.
Definieren wir zunächst die Projektschritte mit Hilfe eines Flussdiagramms.

Schritt 1: Definieren der Alphabetliste
Zunächst werden wir die verwenden Liste Datentyp in Python, um eine Liste der Buchstaben im Alphabet zu erstellen. Python-Pay attention sind eine Abfolge von Elementen in einer bestimmten Reihenfolge und haben mehrere integrierte Funktionen. Das Programm verwendet diese Liste als Verweis auf Verschiebungsbuchstaben nach vorne oder rückwärts gemäß der Auswahl der Codierung oder Dekodierung. Lassen Sie uns die Liste definieren, alphabet.
alphabet = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'okay', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
'v', 'w', 'x', 'y', 'z')
Schritt 2: Fragen Sie die Benutzereingabe an
Der nächste Schritt besteht darin, die Eingabe des Benutzers zu übernehmen. Wir werden den Benutzer fragen:
- Ob sie eine Nachricht codieren oder dekodieren möchten
encode_or_decode - Die jeweilige Nachricht
secret_messagewas sie codieren oder dekodieren wollen, und - Die Schichtzahl
keydurch die die Nachricht codiert oder dekodiert wird.
encode_or_decode = enter("Kind 'encode' to encrypt, sort 'decode' to decrypt:n").decrease()
secret_message = enter("Kind your message right here:n").decrease()
key = int(enter("Kind the important thing:n"))
Stellen Sie sicher, dass Sie das konvertieren key in ein int Datentyp, ansonsten können Sie ein Downside beim Verschieben des Buchstabens nach der Anzahl der Schlüssel, da Python die Eingabe als Zeichenfolge und nicht als Ganzzahltyp betrachtet. Denken Sie auch daran, die Benutzereingabe umzuwandeln secret_message Und encode_or_decode Um die Elemente in der Liste Alphabet und bedingte Aussage zu entsprechen, die vorhanden sind.
Schritt 3: Funktionen definieren und den Modulo -Operator verwenden
Der nächste Schritt besteht darin, beide zu definieren encode Und decode Funktionen, die später aufgerufen werden. Der encode Die Funktion wird aufgerufen, wenn der Benutzer in der „codieren“ wählt encode_or_decode Eingabeaufforderung und die decode Die Funktion wird aufgerufen, wenn der Benutzer in der „dekodieren“ encode_or_decode Eingabeaufforderung.
Beide Funktionen sind für den Code recht einfach. Es wird das nehmen secret_messageschaufeln Sie alle Buchstaben durch und für alle Buchstaben in der zuvor definierten Alphabetliste werden die Indexposition eingenommen. Fügen Sie die hinzu key zu ihm und geben Sie das shifted_position. Wir werden das verwenden shifted_position als Index der Buchstaben und fügen Sie sie dem hinzu output_text Welches wird die codierte oder dekodierte Nachricht sein.
Aber wir haben hier ein Downside! Was ist, wenn die Indexposition durch Verschiebung der Buchstaben aus der Alphabetliste verläuft? Nun, die Lösung hierfür ist es, einen interessanten Python -Operator namens ‚The‘ zu verwenden.Modulo‚. Der Modulo ist ein Bediener, der den Relaxation nach der Teilung gibt und durch ‚%‘ in Python symbolisiert wird. Additionally entspricht 8 % 5 3, da 3 der Relaxation nach 8 durch 5 ist.
Wir werden diesen Bediener in unseren Encode- und Dekodierungsfunktionen verwenden. In Anbetracht der Alphabetliste 26 Elemente, und wenn der Benutzer eine Nachricht zum Codieren von „Vampire“ und der Schlüssel als „10“ gibt, fügen wir die Schlüsselnummer der Indexposition von ‚V‘, 22 + 10 = 32 hinzu, wir haben einen Fehler, da in der 32. -Place in der Alphabet -Liste kein Aspect vorhanden ist. Wenn wir jedoch die Alphabetliste nach ‚z‘ von ‚a‘ neu starten möchten, würde das 32. Alphabet auf ‚f‘ fallen, dem 6. Aspect in der Alphabetliste. Der gleiche Buchstaben und die gleiche Indexposition können mit dem Modulo -Operator erreicht werden. Für einen verschobenen Wert von 32 befindet sich der Buchstaben auf der Place von 32 % 26 = 6. Place. Daher werden wir dieselbe Logik für die Codierung unserer Encode- und Dekodierungsfunktionen verwenden.
Hier ist die Encode -Funktion:
def encode(message, keynumber, operation):
output_text = ""
for letter in message:
if letter in alphabet:
shifted_position = alphabet.index(letter) + keynumber
shifted_position = shifted_position % len(alphabet)
output_text = output_text + alphabet(shifted_position)
else:
output_text += letter
print("Right here is the encoded textual content : ", output_text)
Wenn ich additionally „Ich habe eine Haustierkatze“ mit der Schlüsselnummer ‚6‘ codieren möchte, erhalte ich die folgende codierte Nachricht:


Für die Dekodierungsfunktion müssen wir, da wir dekodieren, die Buchstaben durch die Buchstaben verschieben key In umgekehrter Reihenfolge rückwärts. Wenn ich additionally die obige Nachricht dekodieren möchte: ‚O ngbk g vkz igz‘, muss ich die Schlüsselnummer mit -1 multiplizieren, so dass es anstatt den Schlüssel hinzuzufügen, das subtrahiert die keyund die shifted_position wird erreicht, indem die Indexposition rückwärts verschoben wird.
Definieren Sie die Decode -Funktion:
def decode(message, keynumber, operation):
keynumber = keynumber * -1
output_text = ""
for letter in message:
if letter in alphabet:
shifted_position = alphabet.index(letter) + keynumber
shifted_position = shifted_position % len(alphabet)
output_text = output_text + alphabet(shifted_position)
else:
output_text += letter
print("Right here is the decoded textual content : ", output_text)
Hier ist unsere dekodierte Nachricht:

Schritt 4: Aufrufen von Funktionen
Sobald unsere Funktionen definiert sind, werden wir sie bei Bedarf anrufen. Wenn der Benutzer eine Nachricht verschlüsseln möchte, rufen wir das an encode Funktion, und wenn sie eine Nachricht entschlüsseln wollen, werden wir das aufrufen decode Funktion. Implementieren wir dies in unserem Code mit bedingten Anweisungen, wenn, elif und sonst:
if encode_or_decode == 'encode':
encode(message=secret_message, keynumber=key, operation=encode_or_decode)
elif encode_or_decode == 'decode':
decode(message=secret_message, keynumber=key, operation=encode_or_decode)
else:
print("Error")
Schritt 5: Programm Kontinuität
Der letzte Schritt dieses Programms besteht darin, den Benutzer zu fragen, ob er das Programm der Verschlüsselung und Entschlüsselung oder des Endes fortsetzen möchte. Wir werden dies mit einer Variablen implementieren continue_program Das wird zu Beginn zutreffen und bleibt, wenn der Benutzer das Programm fortsetzen möchte. Wenn der Benutzer enden möchte, ändert sich die Variable in False und das Programm endet. Wir werden diesen Zustand in a aufnehmen whereas Schleife, die so lange läuft, wie die Variable bleibt True.
continue_program = True
whereas continue_program:
encode_or_decode = enter("Kind 'encode' to encrypt, sort 'decode' to decrypt:n").decrease()
secret_message = enter("Kind your message right here:n").decrease()
key = int(enter("Kind the important thing:n"))
if encode_or_decode == 'encode':
encode(message=secret_message, keynumber=key, operation=encode_or_decode)
elif encode_or_decode == 'decode':
decode(message=secret_message, keynumber=key, operation=encode_or_decode)
else:
print("Error")
restart = enter("Kind 'sure' if you wish to proceed with this system.nOtherwise, sort 'no'.n").decrease()
if restart == "no":
continue_program = False
Abschluss
Mit der Einbeziehung der whereas Schleife oben haben wir das Caesar -Cipher -Programm in Python erfolgreich implementiert. Dieses Projekt untersuchte bedingte Aussagen ifAnwesend elifUnd elseAnwesend for Und whereas Schleifen und Definieren und Anruffunktionen. Darüber hinaus haben wir den Modulo -Operator in dieses Programm eingeführt, um Ausnahmen zu bewältigen.
Sie finden den vollständigen Quellcode dieses Projekts Hier.
Wenn Sie Fragen haben oder einen anderen Ansatz teilen möchten, können Sie diesen Artikel gerne kommentieren. Ich werde mich darauf freuen. Completely happy Coding! 🙂
