So schreiben Sie einen Morsecode-Übersetzer in Python

So schreiben Sie einen Morsecode-Übersetzer in Python

Der Morsecode existiert seit den frühen 1800er Jahren und hat seinen Weg in das digitale Zeitalter gefunden. Von der Verwendung als wichtiges Kommunikationsmedium während des Zweiten Weltkriegs bis hin zum Senden verschlüsselter Nachrichten in der Luft- und Schifffahrt ist der Morsecode hier, um zu bleiben.

Wenn Sie diese faszinierende Sprache nicht kennen, machen Sie sich bereit, nicht nur den Morsecode zu entdecken, sondern auch Ihren eigenen Übersetzer mit Python zu erstellen.

Was ist Morsecode?

Morsecode ist eine Kommunikationsmethode, bei der Sie Textzeichen in eine Standardfolge von zwei Signalen unterschiedlicher Dauer codieren, die durch Punkte und Striche gekennzeichnet sind. Der Morsecode hat seinen Namen von Samuel Morse, einem der Erfinder des Telegrafen. Sie können es sich merken und über Schallwellen oder sichtbares Licht übertragen, das von den menschlichen Sinnen wahrnehmbar ist.

Die Länge des Morsecode-Äquivalents ist umgekehrt zu unserer Häufigkeit der Verwendung dieses Alphabets, und Sie können sehen, dass der Morsecode den häufigsten Buchstaben in der englischen Sprache, E, nur einem Punkt zuweist.

Sie können diese kostenlose Morsecode-Software und -Apps verwenden, um sich gegenseitig verschlüsselte Nachrichten zu senden. Auf der anderen Seite ist das Erlernen des Morsecodes ziemlich einfach, und Sie können ihn mit ziemlich viel Übung innerhalb eines Monats lernen. Um Ihnen den Einstieg zu erleichtern, finden Sie hier neun Websites, auf denen Sie kostenlos Morsezeichen lernen können.

So erstellen Sie einen Morsecode-Übersetzer mit Python

Beginnen Sie mit der Definition eines Python-Wörterbuchs namens MORSE_CODE_DICT zum Speichern der Morsecodewerte. Die Schlüssel sind Buchstaben des englischen Alphabets mit der entsprechenden Punkt- oder Strichfolge als entsprechendem Wert. Mithilfe eines Wörterbuchs können Sie schnell jeden Schlüssel mit seinem entsprechenden Wert nachschlagen.

MORSE_CODE_DICT = { 'A':'.-', 'B':'-...',
                    'C':'-.-.', 'D':'-..', 'E':'.',
                    'F':'..-.', 'G':'--.', 'H':'....',
                    'I':'..', 'J':'.---', 'K':'-.-',
                    'L':'.-..', 'M':'--', 'N':'-.',
                    'O':'---', 'P':'.--.', 'Q':'--.-',
                    'R':'.-.', 'S':'...', 'T':'-',
                    'U':'..-', 'V':'...-', 'W':'.--',
                    'X':'-..-', 'Y':'-.--', 'Z':'--..',
                    '1':'.----', '2':'..---', '3':'...--',
                    '4':'....-', '5':'.....', '6':'-....',
                    '7':'--...', '8':'---..', '9':'----.',
                    '0':'-----', ', ':'--..--', '.':'.-.-.-',
                    '?':'..--..', '/':'-..-.', '-':'-....-',
                    '(':'-.--.', ')':'-.--.-' }

Deklarieren Sie eine Funktion namens encrypt, die message als Eingabeparameter akzeptiert . Initialisieren Sie innerhalb der Funktion eine Variable namens cipher mit einer leeren Zeichenfolge. Sie verwenden dies, um die verschlüsselte Nachricht zu erstellen und zu speichern. Deklarieren Sie als Nächstes eine for-Schleife, die jeden Buchstaben in der Nachricht durchläuft.

Wenn der Buchstabe kein Leerzeichen ist, übergeben Sie ihn zur Suche an das Wörterbuch. Das Wörterbuch gibt basierend auf dem Schlüssel den entsprechenden More-Codewert zurück. Fügen Sie ein Leerzeichen hinzu, um die Zeichen des Morsecodes zu trennen, und verwenden Sie den Kurzschreiboperator += , um ihn mit dem aus dem Wörterbuch erhaltenen Code zu verketten. Wenn der Buchstabe ein Leerzeichen ist, fügen Sie der Chiffre ein zusätzliches Leerzeichen hinzu; Morsecode trennt Wörter mit zwei aufeinanderfolgenden Leerzeichen.

def encrypt(message):
    cipher = ""
    for letter in message:
        if letter! = "":
            cipher += MORSE_CODE_DICT[letter] + ""
        else:
            cipher += ""
    return cipher

Deklarieren Sie eine Funktion namens decrypt, die message als Eingabeparameter akzeptiert. Fügen Sie am Ende ein Leerzeichen hinzu und verwenden Sie den Kurzschreiboperator, um auf das letzte Zeichen des Morsecodes zuzugreifen. Initialisieren Sie zwei Variablen, decipher und citext , um leere Zeichenfolgen zu enthalten. Die Entschlüsselungsvariable enthält den entschlüsselten Satz, der aus dem englischen Alphabet besteht, während Sie Citext verwenden, um jeden Buchstaben des Morsecodes zu speichern.

Iterieren Sie eine for-Schleife, die jeden Buchstaben des Morsecodes durchläuft. Wenn der Buchstabe kein Leerzeichen ist, initialisieren Sie eine Zählervariable i, die die Anzahl der Leerzeichen auf Null verfolgt, und speichern Sie den Morsecode eines einzelnen Zeichens im Zitext. Andernfalls ist der Buchstabe ein Leerzeichen, erhöhen Sie also den Zähler um eins.

Wenn der Zähler gleich zwei ist, bedeutet dies, dass Sie der entschlüsselten Wortvariablen decipher Leerzeichen hinzufügen müssen. Greifen Sie andernfalls mit ihren Werten auf die Schlüssel zu. Iterieren Sie dazu mit der Funktion items über die Schlüssel-Wert-Paare im Wörterbuch. Wenn der Zitext dem Wert entspricht, fügen Sie den entsprechenden Schlüssel mithilfe des Kurzschriftoperators zur Entschlüsselungsvariablen hinzu.

Löschen Sie schließlich den Zitext, um den nächsten Buchstaben zu erhalten, und geben Sie den erhaltenen entschlüsselten Satz an den Funktionsaufruf zurück.

def decrypt(message):
    message += ""
    decipher = ""
    citext = ""

    for letter in message:
        if letter! = "":
            i = 0
            citext += letter
        else:
            i += 1

            if i == 2:
                decipher += ""
            else:
                for key, value in MORSE_CODE_DICT.items():
                    if citext == value:
                        decipher += key

                citext = ""

    return decipher

Testen Sie die Funktionen mit einigen Beispieleingaben. Beginnen Sie mit der Initialisierung einer Variablen namens message mit dem Wort oder Satz, den Sie verschlüsseln möchten. Verwenden Sie die Upper- Funktion, um alle Buchstaben in Großbuchstaben umzuwandeln, und übergeben Sie sie als Argument an die encrypt-Funktion. Der Morsecode enthält nur Großbuchstaben, die die Schlüssel im Wörterbuch sind. Dies hilft auch, unnötige Laufzeitprüfungen auf gültige Groß- und Kleinschreibung zu vermeiden.

Drucken Sie den resultierenden Wert, um das Morsecode-Äquivalent des ursprünglichen Satzes anzuzeigen.

Speichern Sie dann einen Morsecode in der Nachrichtenvariable und übergeben Sie ihn an die Entschlüsselungsfunktion. Drucken Sie das Ergebnis aus und prüfen Sie, ob es korrekt ist.

Anstatt die Eingabe fest zu codieren, können Sie sie mit der Funktion input() vom Benutzer akzeptieren .

message = "Make Use Of"
result = encrypt(message.upper())
print(result)

message = "--. - -.-. . .-. ... ---. .-."
result = decrypt(message)
print(result)

Ausgabe des Morsecode-Übersetzers in Python

Das Python-Programm übersetzt jeden Buchstaben des englischen Alphabets in sein Morsecode-Äquivalent und zeigt es wie gezeigt auf dem Terminal-Ausgabebildschirm an. Wenn Sie die erhaltene Ausgabe kopieren und zur Entschlüsselung weitergeben, erhalten Sie den ursprünglichen Text, den Sie zuvor übergeben haben. Dies bestätigt, dass die Übersetzung einwandfrei funktioniert hat.

Ausgabe des Morsecode-Übersetzers in Python

Mobile Anwendungen für Morsecode

Morsecode-Übersetzer stehen Ihnen kostenlos zur Verfügung. Mehr als Hunderte von Anwendungen wie Morse Mania, Morse Trainer, Morse Code Reader, Morse Code Keyboard und Morse Code Translator sind auf verschiedenen Plattformen verfügbar. Zu Ihrer Überraschung wird es sogar von GBoard – der Google-Tastatur – unterstützt.

Um auf den Morsecode auf Ihrem Gboard zuzugreifen, öffnen Sie das Symbol „Einstellungen“ auf dem Gboard, wählen Sie „Sprachen“ und tippen Sie auf „Englisch (US)“. Wischen Sie nach rechts durch die Optionen und wählen Sie dann Morsecode. Ihre Tastatur unterstützt jetzt das Einfügen von Morsecodes zusammen mit Bedienungshilfen wie TalkBack, Switch Access oder Select to Speak.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert