Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Morseova azbuka postoji od ranih 1800-ih i pronašla je svoj put do digitalne ere. Od služenja kao kritičnog medija komunikacije tijekom Drugog svjetskog rata do slanja šifriranih poruka u zrakoplovstvu i pomorstvu, Morseov kod je ovdje da ostane.

Ako niste svjesni ovog fascinantnog jezika, pripremite se ne samo otkriti Morseovu abecedu, već i izraditi vlastiti prevoditelj koristeći Python.

Što je Morseov kod?

Morseova azbuka je metoda komunikacije u kojoj kodirate tekstualne znakove u standardni niz od dva signala različitog trajanja, označenih točkama i crticama. Morseova azbuka dobila je ime po Samuelu Morseu, jednom od izumitelja telegrafa. Možete ga zapamtiti i prenijeti putem zvučnih valova ili vidljive svjetlosti koju mogu osjetiti ljudska osjetila.

Duljina ekvivalenta Morseove abecede je inverzna našoj učestalosti korištenja te abecede, i možete vidjeti da Morseova abeceda najčešćem slovu u engleskom jeziku, E, dodjeljuje samo točku.

instagram viewer

Možete koristiti ove besplatan Morseov softver i aplikacije za slanje kodiranih poruka jedan drugome. S druge strane, učenje Morseove abecede je prilično jednostavno i možete ga naučiti u roku od mjesec dana uz prilično vježbe. Evo kako bismo vam pomogli da započnete devet mjesta za učenje Morseove abecede besplatno.

Kako izgraditi prevoditelj Morseovog koda koristeći Python

Započnite definiranjem Python rječnika pod nazivom MORSE_CODE_DICT za pohranu vrijednosti Morseove azbuke. Ključevi će biti slova engleske abecede, s odgovarajućim nizom točaka ili crtica kao odgovarajućom vrijednošću. Pomoću rječnika možete brzo potražiti bilo koji ključ do njegove odgovarajuće vrijednosti.

MORSE_CODE_DICT = { 'A':'.-', 'B':'-...',
'C':'-.-.', 'D':'-..', 'E':'.',
'F':'..-.', 'G':'--.', 'H':'...',
'ja':'..', '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':'', ', ':'--..--', '.':'.-.-.-',
'?':'..--..', '/':'-..-.', '-':'-...-',
'(':'-.--.', ')':'-.--.-' }

Deklarirajte funkciju pod nazivom encrypt koja prihvaća poruka kao ulazni parametar. Unutar funkcije inicijalizirajte varijablu pod nazivom šifra s praznim nizom. To ćete koristiti za izradu i pohranjivanje šifrirane poruke. Zatim deklarirajte for petlju koja ponavlja svako slovo u poruci.

Ako slovo nije razmak, proslijedite ga u rječnik radi traženja. Rječnik vraća odgovarajuću vrijednost koda Više na temelju ključa. Dodajte razmak za odvajanje znakova Morseove abecede i upotrijebite stenografiju += operator za spajanje s kodom dobivenim iz rječnika. Ako je slovo razmak, dodajte dodatni razmak u šifru; Morseova azbuka odvaja riječi s dva uzastopna razmaka.

defšifrirati(poruka):
šifra = ""
za slovo u poruci:
ako slovo != " ":
šifra += MORSE_CODE_DICT[slovo] + " "
drugo:
šifra += " "
povratak šifra

Deklarirajte funkciju pod nazivom decrypt koja prihvaća poruka kao ulazni parametar. Dodajte razmak na kraju, koristeći stenografski operator za pristup zadnjem znaku Morseove azbuke. Inicijalizirati dvije varijable, dešifrirati i citext držati prazne nizove. Varijabla za dešifriranje će sadržavati dešifriranu rečenicu koja se sastoji od engleske abecede dok vi koristite citext za pohranjivanje svakog slova Morseove abecede.

Ponovite for petlju koja prolazi kroz svako slovo Morseove azbuke. Ako slovo nije razmak, inicijalizirajte varijablu brojača i koja prati broj razmaka do nule i pohranjuje Morseov kod jednog znaka u citext. U suprotnom, slovo je razmak, pa povećajte brojač za jedan.

Ako je brojač jednak dva, to znači da morate dodati prazan prostor dešifriranoj varijabli dešifrirane riječi. U suprotnom pristupite ključevima pomoću njihovih vrijednosti. Da biste to učinili, iterirajte po parovima ključ-vrijednost u rječniku pomoću funkcije items. Ako je citekst jednak vrijednosti, dodajte odgovarajući ključ varijabli za dešifriranje koristeći skraćeni operator.

Na kraju, očistite citext kako biste dobili sljedeće slovo i vratili dobivenu dešifriranu rečenicu pozivu funkcije.

defdešifrirati(poruka):
poruka += " "
dešifrirati = ""
citekst = ""

za slovo u poruci:
ako slovo != " ":
i = 0
citekst += slovo
drugo:
ja += 1

ako je i == 2:
dešifrirati += " "
drugo:
zaključ, vrijednostuMORSE_CODE_DICT.predmeti():
if citext == vrijednost:
dešifrirati += ključ

citekst = ""

povratak dešifrirati

Testirajte funkcije pomoću uzorka unosa. Počnite inicijaliziranjem varijable pod nazivom poruka s riječju ili rečenicom koju želite šifrirati. Koristiti Gornji funkcija za pretvaranje svih slova u velika slova i prosljeđivanje funkcije encrypt kao argument. Morseov kod sadrži samo velika slova, koja su ključevi u rječniku. Ovo također pomaže u izbjegavanju nepotrebnih provjera vremena izvođenja za ispravna velika i mala slova.

Ispišite dobivenu vrijednost da vidite ekvivalent izvorne rečenice Morseovim kodom.

Zatim pohranite Morseov kod u varijablu poruke i proslijedite ga funkciji dešifriranja. Ispišite rezultat i provjerite je li točan.

Umjesto tvrdog kodiranja unosa, možete ga prihvatiti od korisnika s ulazni() funkcija.

poruka = "Iskoristiti"
rezultat = šifriranje (message.upper())
ispisati(proizlaziti)

poruka = "-- .- -.-. ..-.... ..-."
rezultat = dešifriranje (poruka)
ispisati(proizlaziti)

Izlaz Morse Code Translator u Python

Program Python prevodi svako slovo engleske abecede u svoj ekvivalent Morseove abecede i prikazuje ga na izlaznom ekranu terminala kao što je prikazano. Ako kopirate dobiveni izlaz i proslijedite ga na dešifriranje, primit ćete izvorni tekst koji ste prethodno proslijedili. Time se potvrđuje da je prijevod savršeno funkcionirao.

Mobilne aplikacije za Morseov kod

Prevoditelji Morseove abecede dostupni su vam besplatno na dohvat ruke. Više od stotine aplikacija kao što su Morse Mania, Morse Trainer, Morse Code Reader, Morse Code Keyboard i Morse Code Translator dostupni su na različitim platformama. Na vaše iznenađenje, podržava ga čak i GBoard - Google tipkovnica.

Za pristup Morseovoj abecedi na Gboardu, otvorite ikonu postavki na Gboardu, odaberite Jezici i dodirnite engleski (SAD). Prijeđite prstom udesno kroz opcije, a zatim odaberite Morseov kod. Vaša tipkovnica sada podržava umetanje Morseovog koda zajedno s uslugama pristupačnosti, kao što su TalkBack, Switch Access ili Select to Speak.