logo

Morsekodeoversætter i Python

Morsekode er en metode til at overføre tekstinformation som en række tænd-sluk-toner, lys eller klik, der kan forstås direkte af en dygtig lytter eller observatør uden specielt udstyr. Den er opkaldt efter Samuel F. B. Morse, en opfinder af telegrafen.

Algoritme

Algoritmen er meget enkel. Hvert tegn på det engelske sprog erstattes af en række 'prikker' og 'bindestreger' eller nogle gange bare ental 'dot' eller 'dash' og omvendt.
Se venligst denne Wikipedia billede for detaljer.



Kryptering

  1. I tilfælde af kryptering udtrækker vi hvert tegn (hvis ikke mellemrum) fra et ord et ad gangen og matcher det med dets tilsvarende morsekode gemt i hvilken datastruktur vi end har valgt (hvis du koder i python, kan ordbøger vise sig for at være meget nyttig i dette tilfælde)
  2. Gem morsekoden i en variabel, der vil indeholde vores kodede streng, og så tilføjer vi et mellemrum til vores streng, der vil indeholde resultatet.
  3. Mens vi koder i morsekode, skal vi tilføje 1 mellemrum mellem hvert tegn og 2 på hinanden følgende mellemrum mellem hvert ord.
  4. Hvis tegnet er et mellemrum, skal du tilføje et andet mellemrum til den variabel, der indeholder resultatet. Vi gentager denne proces, indtil vi krydser hele strengen

Dekryptering

  1. I tilfælde af dekryptering starter vi med at tilføje et mellemrum i slutningen af ​​strengen, der skal afkodes (dette vil blive forklaret senere).
  2. Nu fortsætter vi med at udtrække tegn fra strengen, indtil vi ikke får noget mellemrum.
  3. Så snart vi får et mellemrum, slår vi det tilsvarende engelsksprogede tegn op til den udtrukne sekvens af tegn (eller vores morsekode) og føjer det til en variabel, der gemmer resultatet.
  4. Husk at holde styr på pladsen er den vigtigste del af denne dekrypteringsproces. Så snart vi får 2 på hinanden følgende mellemrum tilføjer vi endnu et mellemrum til vores variabel, der indeholder den afkodede streng.
  5. Det sidste mellemrum i slutningen af ​​strengen hjælper os med at identificere den sidste sekvens af morsekodetegn (da mellemrum fungerer som en kontrol for at udtrække tegn og begynde at afkode dem).

Implementering:

Python giver en datastruktur kaldet en ordbog, som gemmer information i form af nøgleværdi-par, hvilket er meget praktisk til at implementere en chiffer såsom en morsekode. Vi kan gemme morsekodekortet i en ordbog hvor (nøgle-værdi-par) => (engelsk tegn-morsekode) . Klarteksten (engelske tegn) træder i stedet for nøgler, og chifferteksten (morsekode) danner værdierne for de tilsvarende nøgler. Værdierne af nøgler kan tilgås fra ordbogen på samme måde, som vi får adgang til værdierne af en matrix gennem deres indeks og omvendt.

Python3




java matematik.min





# Python program to implement Morse Code Translator> '''> VARIABLE KEY> 'cipher' ->'gemmer den morse-oversatte form af den engelske streng'> 'decipher' ->'gemmer den engelsk oversatte form af morsestrengen'> 'citext' ->'gemmer morsekode af et enkelt tegn'> 'i' ->'holder optælling af mellemrum mellem morse-tegn'> 'message' ->'gemmer strengen, der skal kodes eller afkodes'> '''> # 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()>

>

arrays java
>

Produktion:

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