Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Morsejeva abeceda obstaja že od začetka 19. stoletja in je našla pot do digitalne dobe. Od služenja kot kritičnega komunikacijskega medija med drugo svetovno vojno do pošiljanja šifriranih sporočil v letalstvu in pomorstvu, je Morsejeva abeceda tu, da ostane.

Če ne poznate tega fascinantnega jezika, se pripravite ne le na odkrivanje Morsejeve abecede, ampak tudi na izgradnjo lastnega prevajalnika s Pythonom.

Kaj je Morsejeva abeceda?

Morsejeva abeceda je metoda komunikacije, pri kateri kodirate besedilne znake v standardno zaporedje dveh signalov z različnim trajanjem, označenih s pikami in pomišljaji. Morsejeva abeceda je dobila ime po Samuelu Morseju, enemu od izumiteljev telegrafa. Lahko si ga zapomnite in prenašate prek zvočnih valov ali vidne svetlobe, ki jo zaznavajo človeški čuti.

Dolžina ekvivalenta Morsejeve abecede je inverzna naši pogostosti uporabe te abecede in lahko vidite, da Morsejeva abeceda najpogostejši črki v angleškem jeziku, E, dodeli samo piko.

instagram viewer

Te lahko uporabite brezplačna Morsejeva programska oprema in aplikacije za pošiljanje kodiranih sporočil drug drugemu. Po drugi strani pa je učenje Morsejeve abecede dokaj preprosto in se ga lahko naučite v enem mesecu s precej vaje. Za lažji začetek so tukaj devet mest za učenje Morsejeve abecede zastonj.

Kako zgraditi prevajalnik Morsejeve kode z uporabo Pythona

Začnite z definiranjem slovarja Python z imenom MORSE_CODE_DICT za shranjevanje vrednosti Morsejeve abecede. Ključi bodo črke angleške abecede z ustreznim zaporedjem pik ali pomišljajev kot ustrezno vrednostjo. Z uporabo slovarja lahko hitro poiščete kateri koli ključ do njegove ustrezne vrednosti.

MORSE_CODE_DICT = { 'A':'.-', 'B':'-...',
'C':'-.-.', 'D':'-..', 'E':'.',
'F':'..-.', 'G':'--.', 'H':'...',
'JAZ':'..', '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 funkcijo z imenom encrypt, ki sprejema sporočilo kot vhodni parameter. Znotraj funkcije inicializirajte spremenljivko z imenom šifra s praznim nizom. To boste uporabili za ustvarjanje in shranjevanje šifriranega sporočila. Nato deklarirajte zanko for, ki ponavlja vsako črko v sporočilu.

Če črka ni presledek, jo posredujte v slovar za iskanje. Slovar vrne ustrezno vrednost kode More na podlagi ključa. Dodajte presledek, da ločite znake Morsejeve abecede in uporabite stenografijo += operator, da ga združite s kodo, pridobljeno iz slovarja. Če je črka presledek, šifri dodajte dodaten presledek; Morsejeva abeceda loči besede z dvema zaporednima presledkoma.

defšifrirati(sporočilo):
šifra = ""
za črko v sporočilu:
če pismo!= " ":
šifra += MORSE_CODE_DICT[črka] + " "
drugače:
šifra += " "
vrnitev šifra

Deklarirajte funkcijo z imenom decrypt, ki sprejema sporočilo kot vhodni parameter. Na koncu dodajte presledek in uporabite stenografski operater za dostop do zadnjega znaka Morsejeve abecede. Inicializirajte dve spremenljivki, dešifrirajte in citext za držanje praznih nizov. Spremenljivka za dešifriranje bo vsebovala dešifrirani stavek, sestavljen iz angleške abecede, medtem ko boste vi uporabljali citext za shranjevanje vsake črke Morsejeve abecede.

Ponovite zanko for, ki poteka skozi vsako črko Morsejeve abecede. Če črka ni presledek, inicializirajte spremenljivko števca i, ki spremlja število presledkov na nič in shranite Morsejevo abecedo enega znaka v citext. V nasprotnem primeru je črka presledek, zato povečajte števec za eno.

Če je števec enak dve, to pomeni, da morate dešifrirani spremenljivki dešifrirane besede dodati prazen prostor. V nasprotnem primeru dostopajte do ključev z njihovimi vrednostmi. Če želite to narediti, ponovite pare ključ-vrednost v slovarju s funkcijo items. Če je citext enako vrednosti, dodajte ustrezen ključ dešifrirani spremenljivki z uporabo stenografskega operaterja.

Na koncu počistite citext, da dobite naslednjo črko in vrnete dobljeni dešifrirani stavek v klic funkcije.

defdešifrirati(sporočilo):
sporočilo += " "
razvozlati = ""
citext = ""

za črko v sporočilu:
če pismo!= " ":
i = 0
citext += črka
drugače:
jaz += 1

če je i == 2:
razvozlati += " "
drugače:
zaključ, vrednostvMORSE_CODE_DICT.predmeti():
if citext == vrednost:
dešifrirati += ključ

citext = ""

vrnitev razvozlati

Preizkusite funkcije z vzorčnim vnosom. Začnite z inicializacijo spremenljivke z imenom sporočilo z besedo ali stavkom, ki ga želite šifrirati. Uporabi zgornji funkcijo za pretvorbo vseh črk v velike črke in posredovanje šifrirni funkciji kot argument. Morsejeva abeceda vsebuje samo velike črke, ki so ključi v slovarju. S tem se tudi izognete nepotrebnim preverjanjem med izvajanjem za veljavne male in male črke.

Natisnite dobljeno vrednost, da si ogledate ekvivalent izvirnega stavka v Morsejevi abecedi.

Nato shranite Morsejevo abecedo v spremenljivko sporočila in jo posredujte funkciji za dešifriranje. Natisnite rezultat in preverite, ali je pravilen.

Namesto trdega kodiranja vnosa ga lahko sprejmete od uporabnika z vnos() funkcijo.

sporočilo = "Izkoristijo"
rezultat = šifriranje (message.upper())
tiskanje(rezultat)

sporočilo = "-- .- -.-. ..-.... ..-."
rezultat = dešifriranje (sporočilo)
tiskanje(rezultat)

Izpis prevajalnika Morsejeve abecede v Pythonu

Program Python prevede vsako črko angleške abecede v njen ekvivalent Morsejeve abecede in jo prikaže na izhodnem zaslonu terminala, kot je prikazano. Če kopirate dobljeni izhod in ga posredujete v dešifriranje, boste prejeli izvirno besedilo, ki ste ga posredovali prej. To potrjuje, da je prevod deloval brezhibno.

Mobilne aplikacije za Morsejevo abecedo

Prevajalniki Morsejeve abecede so na voljo brezplačno na dosegu roke. Več kot sto aplikacij, kot so Morse Mania, Morse Trainer, Morse Code Reader, Morse Code Keyboard in Morse Code Translator, je na voljo na različnih platformah. Na vaše presenečenje ga podpira celo GBoard – Googlova tipkovnica.

Za dostop do Morsejeve abecede na Gboardu odprite ikono Nastavitve na Gboardu, izberite Jeziki in tapnite English (ZDA). Povlecite desno skozi možnosti in nato izberite Morsejevo abecedo. Vaša tipkovnica zdaj podpira vstavljanje Morsejeve kode skupaj s storitvami za ljudi s posebnimi potrebami, kot so TalkBack, stikalni dostop ali Izberite in govorite.