logo

Morsecode-Übersetzer in Python

Morsecode ist eine Methode zur Übertragung von Textinformationen in Form einer Reihe von Ein-/Aus-Tönen, Lichtern oder Klicks, die von einem erfahrenen Zuhörer oder Beobachter ohne spezielle Ausrüstung direkt verstanden werden können. Es ist nach Samuel F. B. Morse benannt, einem Erfinder des Telegraphen.

Algorithmus

Der Algorithmus ist sehr einfach. Jedes Zeichen in der englischen Sprache wird durch eine Reihe von „Punkten“ und „Strichen“ oder manchmal auch nur einzelne „Punkte“ oder „Striche“ ersetzt und umgekehrt.
Bitte beziehen Sie sich auf diese Wikipedia Bild für Details.



Verschlüsselung

  1. Im Fall der Verschlüsselung extrahieren wir jedes Zeichen (wenn kein Leerzeichen) einzeln aus einem Wort und gleichen es mit dem entsprechenden Morsecode ab, der in der von uns gewählten Datenstruktur gespeichert ist (wenn Sie in Python codieren, können Wörterbücher entstehen). in diesem Fall sehr nützlich sein)
  2. Speichern Sie den Morsecode in einer Variablen, die unsere codierte Zeichenfolge enthält, und fügen Sie dann ein Leerzeichen zu unserer Zeichenfolge hinzu, die das Ergebnis enthält.
  3. Beim Codieren im Morsecode müssen wir zwischen jedem Zeichen ein Leerzeichen und zwischen jedem Wort zwei aufeinanderfolgende Leerzeichen hinzufügen.
  4. Wenn das Zeichen ein Leerzeichen ist, fügen Sie der Variablen, die das Ergebnis enthält, ein weiteres Leerzeichen hinzu. Wir wiederholen diesen Vorgang, bis wir die gesamte Zeichenfolge durchlaufen haben

Entschlüsselung

  1. Bei der Entschlüsselung fügen wir zunächst ein Leerzeichen am Ende der zu dekodierenden Zeichenfolge hinzu (dies wird später erklärt).
  2. Jetzt extrahieren wir so lange Zeichen aus der Zeichenfolge, bis kein Platz mehr vorhanden ist.
  3. Sobald wir ein Leerzeichen erhalten, suchen wir das entsprechende englische Sprachzeichen in der extrahierten Zeichenfolge (oder unserem Morsecode) und fügen es einer Variablen hinzu, die das Ergebnis speichert.
  4. Denken Sie daran, den Überblick über den Speicherplatz zu behalten. Dies ist der wichtigste Teil dieses Entschlüsselungsprozesses. Sobald wir zwei aufeinanderfolgende Leerzeichen erhalten, fügen wir unserer Variablen, die den dekodierten String enthält, ein weiteres Leerzeichen hinzu.
  5. Das letzte Leerzeichen am Ende der Zeichenfolge hilft uns, die letzte Folge von Morsecode-Zeichen zu identifizieren (da das Leerzeichen als Kontrolle für das Extrahieren von Zeichen und deren Dekodierung dient).

Implementierung:

Python bietet eine Datenstruktur namens Wörterbuch, die Informationen in Form von Schlüssel-Wert-Paaren speichert, was sich sehr praktisch für die Implementierung einer Chiffre wie eines Morsecodes eignet. Wir können die Morsecode-Tabelle in einem Wörterbuch speichern, wo (Schlüssel-Wert-Paare) => (Englische Zeichen-Morsecode) . Der Klartext (englische Zeichen) ersetzt Schlüssel und der Chiffretext (Morsecode) bildet die Werte der entsprechenden Schlüssel. Auf die Werte von Schlüsseln kann aus dem Wörterbuch auf die gleiche Weise zugegriffen werden, wie wir auf die Werte eines Arrays über ihren Index zugreifen und umgekehrt.

Python3




Java instanziiert





Java-Zeichen in eine Zeichenfolge umwandeln
# Python program to implement Morse Code Translator> '''> VARIABLE KEY> 'cipher' ->'speichert die Morse-übersetzte Form der englischen Zeichenfolge'> 'decipher' ->'speichert die englisch übersetzte Form der Morsezeichenfolge'> 'citext' ->'speichert Morsecode eines einzelnen Zeichens'> 'i' ->'zählt die Leerzeichen zwischen Morsezeichen'> 'message' ->'speichert die zu kodierende oder zu dekodierende Zeichenfolge'> '''> # Dictionary representing the morse code chart> 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'>:>'-----'>,>', '>:>'--..--'>,>'.'>:>'.-.-.-'>,> >'?'>:>'..--..'>,>'/'>:>'-..-.'>,>'-'>:>'-....-'>,> >'('>:>'-.--.'>,>')'>:>'-.--.-'>}> # Function to encrypt the string> # according to the morse code chart> def> encrypt(message):> >cipher>=> ''> >for> letter>in> message:> >if> letter !>=> ' '>:> ># Looks up the dictionary and adds the> ># corresponding morse code> ># along with a space to separate> ># morse codes for different characters> >cipher>+>=> MORSE_CODE_DICT[letter]>+> ' '> >else>:> ># 1 space indicates different characters> ># and 2 indicates different words> >cipher>+>=> ' '> >return> cipher> # Function to decrypt the string> # from morse to english> def> decrypt(message):> ># extra space added at the end to access the> ># last morse code> >message>+>=> ' '> >decipher>=> ''> >citext>=> ''> >for> letter>in> message:> ># checks for space> >if> (letter !>=> ' '>):> ># counter to keep track of space> >i>=> 0> ># storing morse code of a single character> >citext>+>=> letter> ># in case of space> >else>:> ># if i = 1 that indicates a new character> >i>+>=> 1> ># if i = 2 that indicates a new word> >if> i>=>=> 2> :> ># adding space to separate words> >decipher>+>=> ' '> >else>:> ># accessing the keys using their values (reverse of encryption)> >decipher>+>=> list>(MORSE_CODE_DICT.keys())[>list>(MORSE_CODE_DICT> >.values()).index(citext)]> >citext>=> ''> >return> decipher> # Hard-coded driver function to run the program> def> main():> >message>=> 'GEEKS-FOR-GEEKS'> >result>=> encrypt(message.upper())> >print> (result)> >message>=> '--. . . -.- ... -....- ..-. --- .-. -....- --. . . -.- ... '> >result>=> decrypt(message)> >print> (result)> # Executes the main function> if> __name__>=>=> '__main__'>:> >main()>

>

>

Ausgabe:

--. . . -.- ... -....- ..-. --- .-. -....- --. . . -.- ... GEEKS-FOR-GEEKS>