Morsekoodi on ollut olemassa 1800-luvun alusta lähtien ja se on löytänyt tiensä digitaaliseen aikakauteen. Morsekoodi on tullut pysyäkseen kriittisenä viestintävälineenä toisen maailmansodan aikana salattujen viestien lähettämiseen ilmailussa ja merellä.
Jos et ole tietoinen tästä kiehtovasta kielestä, valmistaudu morsekoodin löytämisen lisäksi myös rakentamaan oma kääntäjäsi Pythonilla.
Mikä on morsekoodi?
Morsekoodi on viestintämenetelmä, jossa tekstin merkit koodataan kahden eripituisen signaalin vakiosekvenssiksi, jotka on merkitty pisteillä ja viivoilla. Morsekoodi on saanut nimensä Samuel Morselta, yhdeltä lennättimen keksijistä. Voit muistaa sen ja lähettää sen ääniaaltojen tai ihmisen aisteilla havaittavan näkyvän valon kautta.
Morse-koodin vastineen pituus on käänteinen tämän aakkoston käyttötiheyteen nähden, ja voit nähdä, että morsekoodi määrittää englannin kielen yleisimmän kirjaimen, E, vain pisteelle.
Voit käyttää näitä ilmaiset morsekoodiohjelmistot ja -sovellukset koodattujen viestien lähettämiseen toisilleen. Toisaalta morsekoodin oppiminen on melko yksinkertaista, ja voit oppia sen kuukaudessa kohtuullisella harjoittelulla. Tässä on avuksi pääset alkuun yhdeksän sivustoa morsekoodin oppimiseen ilmaiseksi.
Morse-koodin kääntäjän rakentaminen Pythonilla
Aloita määrittelemällä Python-sanakirja nimeltä MORSE_CODE_DICT tallentaaksesi morsekoodin arvot. Näppäimet ovat englannin aakkosten kirjaimia, joiden arvo on sopiva piste- tai viivajärjestys. Sanakirjan avulla voit nopeasti etsiä minkä tahansa avaimen sen vastaavaan arvoon.
MORSE_CODE_DICT = { 'A':'.-', "B":'-...',
'C':'-.-.', 'D':'-..', 'E':'.',
"F":'..-.', "G":'--.', "H":'...',
'minä':'..', "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':'', ', ':'--..--', '.':'.-.-.-',
'?':'..--..', '/':'-..-.', '-':'-...-',
'(':'-.--.', ')':'-.--.-' }
Ilmoita funktio nimeltä encrypt, joka hyväksyy viesti syöttöparametrina. Alusta funktion sisällä muuttuja nimeltä salaus tyhjällä merkkijonolla. Käytät tätä salatun viestin luomiseen ja tallentamiseen. Määritä seuraavaksi for-silmukka, joka toistuu viestin jokaisen kirjaimen yli.
Jos kirjain ei ole välilyönti, välitä se sanakirjaan hakua varten. Sanakirja palauttaa vastaavan Lisää koodi -arvon avaimen perusteella. Lisää välilyönti erottaaksesi morsekoodin merkit ja käytä lyhennettä += -operaattoria ketjuttaaksesi sen sanakirjasta saatuun koodiin. Jos kirjain on välilyönti, lisää salaukseen ylimääräinen välilyönti; Morsekoodi erottaa sanat kahdella peräkkäisellä välilyönnillä.
defsalata(viesti):
salaus = ""
viestissä olevalle kirjeelle:
jos kirjain!= " ":
salaus += MORSE_CODE_DICT[kirjain] + " "
muu:
salaus += " "
palata salaus
Ilmoita funktio nimeltä decrypt, joka hyväksyy viesti syöttöparametrina. Lisää välilyönti loppuun käyttämällä lyhennettä, jotta pääset Morse-koodin viimeiseen merkkiin. Alusta kaksi muuttujaa, tulkitse ja lainaus pitämään tyhjiä kieliä. Salausmuuttuja säilyttää englanninkielisistä aakkosista koostuvan puretun lauseen, kun käytät citextiä Morse-koodin jokaisen kirjaimen tallentamiseen.
Toista for-silmukka, joka kulkee jokaisen morsekoodin kirjaimen läpi. Jos kirjain ei ole välilyönti, alusta laskurimuuttuja i, joka seuraa välilyöntien lukumäärää nollaan ja tallentaa yhden merkin morsekoodin cittekstiin. Muussa tapauksessa kirjain on välilyönti, joten lisää laskuria yhdellä.
Jos laskuri on kaksi, se tarkoittaa, että sinun on lisättävä välilyönti purettuun sanamuuttujan purkamiseen. Muussa tapauksessa käytä avaimia niiden arvoilla. Voit tehdä tämän iteroimalla sanakirjan avainarvo-pareja käyttämällä items-toimintoa. Jos citext on yhtä suuri kuin arvo, lisää vastaava avain salausmuuttujaan käyttämällä lyhennettä.
Lopuksi tyhjennä citext saadaksesi seuraavan kirjaimen ja palauta saatu purettu lause funktiokutsuun.
defpurkaa salaus(viesti):
viesti += " "
tulkita = ""
lainaus = ""viestissä olevalle kirjeelle:
jos kirjain!= " ":
i = 0
Citext += kirjain
muu:
i += 1jos i == 2:
tulkita += " "
muu:
vartenavain, arvosisäänMORSE_CODE_DICT.kohteet():
jos citext == arvo:
purkaa += avainlainaus = ""
palata tulkita
Testaa toimintoja jollain näytetulolla. Aloita alustamalla muuttuja nimeltä viesti sanalla tai lauseella, jonka haluat salata. Käytä ylempi funktio muuntaa kaikki kirjaimet isoiksi ja välittää sen salausfunktiolle argumenttina. Morsekoodi sisältää vain isoja kirjaimia, jotka ovat sanakirjan avaimia. Tämä auttaa myös välttämään tarpeettomia ajonaikaisia tarkistuksia kelvolliselle tapaukselle.
Tulosta tuloksena oleva arvo nähdäksesi alkuperäisen lauseen morsekoodin.
Tallenna sitten morsekoodi viestimuuttujaan ja välitä se salauksenpurkutoimintoon. Tulosta tulos ja tarkista, että se on oikein.
Sen sijaan, että koodaat syötteen, voit hyväksyä sen käyttäjältä input() toiminto.
viesti = "Hyödyntää"
tulos = salaa (message.upper())
Tulosta(tulos)
viesti = "-- .- -.-. ..-.... ..-."
tulos = pura salaus (viesti)
Tulosta(tulos)
Morse-koodin kääntäjän tulostus Pythonissa
Python-ohjelma kääntää jokaisen englannin aakkoston kirjaimen morsekoodin vastaavaksi ja näyttää sen päätteen tulostusnäytössä kuvan mukaisesti. Jos kopioit saadun tulosteen ja lähetät sen salauksen purkamiseen, saat alkuperäisen tekstin, jonka lähetit aiemmin. Tämä varmistaa, että käännös toimi täydellisesti.
Morsekoodin mobiilisovellukset
Morse-koodin kääntäjät ovat saatavilla ilmaiseksi aivan sormiesi ulottuvilla. Yli satoja sovelluksia, kuten Morse Mania, Morse Trainer, Morse Code Reader, Morse Code Keyboard ja Morse Code Translator, on saatavilla eri alustoilla. Yllätyksekseksi sitä tukee jopa GBoard - Google-näppäimistö.
Jos haluat käyttää morsekoodia Gboardillasi, avaa Gboardin Asetukset-kuvake, valitse Kielet ja napauta Englanti (Yhdysvallat). Pyyhkäise oikealle vaihtoehtojen läpi ja valitse sitten Morsekoodi. Näppäimistösi tukee nyt morsekoodin lisäämistä sekä esteettömyyspalveluita, kuten TalkBack, Switch Access tai Select to Speak.