Morsekode har eksisteret siden begyndelsen af 1800-tallet og har fundet vej til den digitale æra. Fra at fungere som et kritisk medium for kommunikation under Anden Verdenskrig til at sende krypterede beskeder i luftfart og marine, er morsekode kommet for at blive.
Hvis du ikke er klar over dette fascinerende sprog, så gør dig klar til ikke kun at opdage morsekode, men også bygge din helt egen oversætter ved hjælp af Python.
Hvad er morsekode?
Morsekode er en kommunikationsmetode, hvor du indkoder teksttegn til en standardsekvens af to signaler af forskellig varighed, angivet med prikker og bindestreger. Morsekoden har fået sit navn fra Samuel Morse, en af opfinderne af telegrafen. Du kan huske det og transmittere det via lydbølger eller synligt lys, der kan opfattes af de menneskelige sanser.
Længden af morsekodeækvivalenten er omvendt til vores hyppighed af brug af det alfabet, og du kan se, at morsekoden tildeler det mest almindelige bogstav i det engelske sprog, E, til blot en prik.
Du kan bruge disse gratis morsekodesoftware og apps til at sende kodede beskeder til hinanden. På den anden side er det ret simpelt at lære morsekode, og du kan lære det inden for en måned med en hel del øvelse. For at hjælpe dig i gang, her er ni websteder for at lære morsekode gratis.
Sådan bygger du morsekodeoversætter ved hjælp af Python
Start med at definere en Python-ordbog ved navn MORSE_CODE_DICT for at gemme morsekodeværdierne. Tasterne vil være bogstaver i det engelske alfabet, med den passende prik- eller bindestreg-sekvens som den tilsvarende værdi. Ved hjælp af en ordbog kan du hurtigt slå enhver nøgle op til dens tilsvarende værdi.
MORSE_CODE_DICT = { 'EN':'.-', 'B':'-...',
'C':'-.-.', 'D':'-..', 'E':'.',
'F':'..-.', 'G':'--.', 'H':'...',
'JEG':'..', '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':'', ', ':'--..--', '.':'.-.-.-',
'?':'..--..', '/':'-..-.', '-':'-...-',
'(':'-.--.', ')':'-.--.-' }
Erklær en funktion ved navn krypter, der accepterer besked som inputparameter. Initialiser en variabel med navnet inde i funktionen chiffer med en tom streng. Du skal bruge dette til at oprette og gemme den krypterede besked. Dernæst erklærer du en for-løkke, der itererer over hvert bogstav i meddelelsen.
Hvis bogstavet ikke er et mellemrum, skal du sende det til ordbogen for at slå det op. Ordbogen returnerer den tilsvarende More-kodeværdi baseret på nøglen. Tilføj et mellemrum for at adskille tegnene i morsekoden og brug stenografien += operatør for at sammenkæde den med koden hentet fra ordbogen. Hvis bogstavet er et hvidt mellemrum, skal du tilføje et ekstra mellemrum til chifferen; Morsekode adskiller ord med to på hinanden følgende mellemrum.
defkryptere(besked):
ciffer = ""
for brev i besked:
hvis bogstav != " ":
cipher += MORSE_CODE_DICT[bogstav] + " "
andet:
ciffer += " "
Vend tilbage chiffer
Erklær en funktion ved navn dekrypter, der accepterer besked som inputparameter. Tilføj et mellemrum i slutningen ved at bruge stenografioperatoren for at få adgang til det sidste tegn i morsekoden. Initialiser to variable, dechifrerer og citext at holde tomme strenge. Dechiffreringsvariablen vil indeholde den dekrypterede sætning bestående af det engelske alfabet, mens du bruger citext til at gemme hvert bogstav i morsekoden.
Gentag en for-løkke, der løber gennem hvert bogstav i morsekoden. Hvis bogstavet ikke er mellemrum, initialiseres en tællervariabel i, der holder styr på antallet af mellemrum til nul, og gem morsekoden for et enkelt tegn i citext. Ellers er bogstavet et mellemrum, så forøg tælleren med én.
Hvis tælleren er lig med to, betyder det, at du skal føje hvidt mellemrum til den dekrypterede ordvariabeldechiffrering. Ellers skal du få adgang til nøglerne ved hjælp af deres værdier. For at gøre dette skal du gentage nøgleværdi-parrene i ordbogen ved hjælp af funktionen elementer. Hvis citeksten er lig med værdien, skal du tilføje den tilsvarende nøgle til dechiffreringsvariablen ved hjælp af stenografioperatoren.
Til sidst skal du rydde citexten for at få det næste bogstav og returnere den dekrypterede sætning til funktionskaldet.
defdekryptere(besked):
besked += " "
dechifrere = ""
citext = ""for brev i besked:
hvis bogstav != " ":
i = 0
citext += bogstav
andet:
i += 1hvis jeg == 2:
dechifrere += " "
andet:
tilnøgle, værdiiMORSE_CODE_DICT.varer():
hvis citext == værdi:
dechifrere += nøglecitext = ""
Vend tilbage dechifrere
Test funktionerne med nogle eksempler på input. Start med at initialisere en variabel med navnet besked med det ord eller den sætning, du vil kryptere. Brug øverst funktion til at konvertere alle bogstaver til store bogstaver og sende det til krypteringsfunktionen som et argument. Morsekoden indeholder kun store bogstaver, som er nøglerne i ordbogen. Dette hjælper også med at undgå unødvendige runtime-tjek for gyldig sag.
Udskriv den resulterende værdi for at se morsekoden, der svarer til den oprindelige sætning.
Gem derefter en morsekode i beskedvariablen og send den til dekrypteringsfunktionen. Udskriv resultatet og kontroller, at det er korrekt.
I stedet for at hardkode inputtet, kan du acceptere det fra brugeren med input() fungere.
besked = "Gøre brug af"
resultat = krypter (message.upper())
Print(resultat)
besked = "-- .- -.-. ..-.... ..-."
resultat = dekryptere (besked)
Print(resultat)
Output af Morse Code Translator i Python
Python-programmet oversætter hvert bogstav i det engelske alfabet til dets morsekodeækvivalent og viser det til terminalens outputskærm som vist. Hvis du kopierer det opnåede output og sender det til dekryptering, vil du modtage den originale tekst, som du har sendt tidligere. Dette bekræfter, at oversættelsen fungerede perfekt.
Mobilapplikationer til morsekode
Morsekodeoversættere er gratis tilgængelige lige ved hånden. Mere end hundredvis af applikationer såsom Morse Mania, Morse Trainer, Morse Code Reader, Morse Code Keyboard og Morse Code Translator er tilgængelige på forskellige platforme. Til din overraskelse understøttes det endda af GBoard - Google Keyboard.
For at få adgang til morsekode på dit Gboard skal du åbne ikonet Indstillinger på Gboard, vælge Sprog og trykke på Engelsk (USA). Stryg til højre gennem mulighederne, og vælg derefter morsekode. Dit tastatur understøtter nu morsekode-indsættelse sammen med tilgængelighedstjenester, såsom TalkBack, Switch Access eller Select to Speak.