Morsekod har funnits sedan tidigt 1800-tal och har hittat sin väg till den digitala eran. Från att fungera som ett kritiskt kommunikationsmedium under andra världskriget till att skicka krypterade meddelanden inom luftfart och marin, morsekod är här för att stanna.
Om du inte är medveten om detta fascinerande språk, gör dig redo att inte bara upptäcka morsekod utan också bygga din egen översättare med Python.
Vad är morsekod?
Morsekod är en kommunikationsmetod där du kodar texttecken till en standardsekvens av två signaler med varierande varaktighet, betecknade med punkter och streck. Morsekoden har fått sitt namn från Samuel Morse, en av telegrafens uppfinnare. Du kan memorera det och sända det via ljudvågor eller synligt ljus som kan uppfattas av de mänskliga sinnena.
Längden på morsekodens ekvivalent är omvänt mot vår frekvens av användning av det alfabetet, och du kan se att morsekoden tilldelar den vanligaste bokstaven i det engelska språket, E, till bara en prick.
Du kan använda dessa gratis morsekodprogram och appar för att skicka kodade meddelanden till varandra. Å andra sidan är det ganska enkelt att lära sig morsekod, och du kan lära dig det inom en månad med en hel del övning. För att hjälpa dig komma igång finns här nio platser för att lära sig morsekod gratis.
Hur man bygger morsekodöversättare med Python
Börja med att definiera en Python-ordbok som heter MORSE_CODE_DICT för att lagra morsekodvärdena. Tangenterna kommer att vara bokstäver i det engelska alfabetet, med lämplig prick- eller strecksekvens som motsvarande värde. Med hjälp av en ordbok kan du snabbt slå upp valfri nyckel till motsvarande värde.
MORSE_CODE_DICT = { 'A':'.-', 'B':'-...',
'C':'-.-.', 'D':'-..', 'E':'.',
'F':'..-.', 'G':'--.', 'H':'...',
'jag':'..', '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':'', ', ':'--..--', '.':'.-.-.-',
'?':'..--..', '/':'-..-.', '-':'-...-',
'(':'-.--.', ')':'-.--.-' }
Deklarera en funktion som heter kryptera som accepterar meddelande som en ingångsparameter. Initiera en variabel med namnet inuti funktionen chiffer med en tom sträng. Du kommer att använda detta för att skapa och lagra det krypterade meddelandet. Deklarera sedan en for-loop som itererar över varje bokstav i meddelandet.
Om bokstaven inte är blanksteg, skicka den till ordboken för uppslag. Ordboken returnerar motsvarande More-kodvärde baserat på nyckeln. Lägg till ett mellanslag för att separera tecknen i morsekoden och använd stenografin += operatör för att sammanfoga den med koden som erhålls från ordboken. Om bokstaven är ett blanksteg, lägg till ett extra mellanslag till chifferen; Morsekod separerar ord med två på varandra följande mellanslag.
defkryptera(meddelande):
chiffer = ""
för brev i meddelande:
om bokstav != " ":
chiffer += MORSE_CODE_DICT[bokstav] + " "
annan:
chiffer += " "
lämna tillbaka chiffer
Deklarera en funktion som heter dekryptera som accepterar meddelande som en ingångsparameter. Lägg till ett mellanslag i slutet, använd stenografioperatorn för att komma åt det sista tecknet i morsekoden. Initiera två variabler, dechiffrera och citext att hålla tomma strängar. Dechiffreringsvariabeln kommer att hålla den dekrypterade meningen som består av det engelska alfabetet medan du använder citext för att lagra varje bokstav i morsekoden.
Iterera en for-loop som går genom varje bokstav i morsekoden. Om bokstaven inte är blanksteg, initiera en räknarvariabel i som håller reda på antalet blanksteg till noll och lagra morsekoden för ett enda tecken i citext. Annars är bokstaven ett mellanslag, så öka räknaren med ett.
Om räknaren är lika med två betyder det att du måste lägga till blanksteg till den dekrypterade ordvariabeln dechiffrerar. Annars får du tillgång till nycklarna med deras värden. För att göra detta, iterera över nyckel-värdeparen i ordboken med hjälp av objektfunktionen. Om citexten är lika med värdet, lägg till motsvarande nyckel till dechiffreringsvariabeln med stenografioperatorn.
Rensa slutligen citexten för att få nästa bokstav och returnera den erhållna dekrypterade meningen till funktionsanropet.
defAvkryptera(meddelande):
meddelande += " "
dechiffrera = ""
citext = ""för brev i meddelande:
om bokstav != " ":
i = 0
citext += bokstav
annan:
i += 1om jag == 2:
dechiffrera += " "
annan:
förnyckel, värdeiMORSE_CODE_DICT.objekt():
om citext == värde:
dechiffrera += nyckelcitext = ""
lämna tillbaka dechiffrera
Testa funktionerna med lite exempelinmatning. Börja med att initiera en variabel med namnet meddelande med ordet eller meningen du vill kryptera. Använd övre funktion för att konvertera alla bokstäver till versaler och skicka den till krypteringsfunktionen som ett argument. Morsekod innehåller endast versaler, som är nycklarna i ordboken. Detta hjälper också till att undvika onödiga körtidskontroller för giltiga fall.
Skriv ut det resulterande värdet för att se morsekodens motsvarighet till den ursprungliga meningen.
Lagra sedan en morsekod i meddelandevariabeln och skicka den till dekrypteringsfunktionen. Skriv ut resultatet och kontrollera att det stämmer.
Istället för att hårdkoda ingången kan du acceptera den från användaren med inmatning() fungera.
meddelande = "Använda"
resultat = kryptera (meddelande.upper())
skriva ut(resultat)
meddelande = "-- .- -.-. ..-.... ..-."
resultat = dekryptera (meddelande)
skriva ut(resultat)
Utdata från Morse Code Translator i Python
Python-programmet översätter varje bokstav i det engelska alfabetet till dess morsekod-motsvarighet och visar den på terminalens utgångsskärm som visas. Om du kopierar den erhållna utgången och skickar den för dekryptering får du originaltexten som du skickade in tidigare. Detta verifierar att översättningen fungerade perfekt.
Mobilapplikationer för morsekod
Morsekodöversättare är tillgängliga gratis direkt till hands. Mer än hundratals applikationer som Morse Mania, Morse Trainer, Morse Code Reader, Morse Code Keyboard och Morse Code Translator är tillgängliga på olika plattformar. Till din förvåning stöds det till och med av GBoard - Google Keyboard.
För att komma åt morsekod på din Gboard, öppna ikonen Inställningar på Gboard, välj Språk och tryck på engelska (USA). Svep höger genom alternativen och välj sedan morsekod. Ditt tangentbord har nu stöd för infogning av morsekod tillsammans med tillgänglighetstjänster, som TalkBack, Switch Access eller Select to Speak.