Morsecode bestaat al sinds het begin van de 19e eeuw en heeft zijn weg gevonden naar het digitale tijdperk. Van het dienen als een cruciaal communicatiemiddel tijdens de Tweede Wereldoorlog tot het verzenden van gecodeerde berichten in de luchtvaart en de zee, morsecode is er om te blijven.
Als je deze fascinerende taal niet kent, bereid je dan voor om niet alleen morsecode te ontdekken, maar ook je eigen vertaler te bouwen met behulp van Python.
Wat is morsecode?
Morsecode is een communicatiemethode waarbij u teksttekens codeert in een standaardreeks van twee signalen van verschillende duur, aangeduid met punten en streepjes. De morsecode dankt zijn naam aan Samuel Morse, een van de uitvinders van de telegraaf. Je kunt het onthouden en doorgeven via geluidsgolven of zichtbaar licht dat waarneembaar is voor de menselijke zintuigen.
De lengte van het morsecode-equivalent is omgekeerd aan onze gebruiksfrequentie van dat alfabet, en je kunt zien dat morsecode de meest voorkomende letter in de Engelse taal, E, toewijst aan slechts een punt.
U kunt deze gebruiken gratis morsecodesoftware en apps om gecodeerde berichten te verzenden naar elkaar. Aan de andere kant is het leren van morsecode vrij eenvoudig, en je kunt het binnen een maand leren met behoorlijk wat oefening. Om u op weg te helpen, vindt u hier negen sites om morsecode te leren gratis.
Hoe Morse Code Translator te bouwen met behulp van Python
Begin met het definiëren van een Python-woordenboek met de naam MORSE_CODE_DICT om de morsecodewaarden op te slaan. De toetsen zijn letters van het Engelse alfabet, met de juiste punt- of streepjesvolgorde als corresponderende waarde. Met behulp van een woordenboek kunt u snel elke sleutel opzoeken voor de bijbehorende waarde.
MORSE_CODE_DICT = { 'A':'.-', 'B':'-...',
'C':'-.-.', 'D':'-..', 'E':'.',
'F':'..-.', 'G':'--.', 'H':'...',
'I':'..', 'J':'.', 'K':'-.-',
'L':'.-..', 'M':'--', 'N':'-.',
'O':'', 'P':'.--.', 'Q':'--.-',
'R':'.-.', 'S':'...', 'T':'-',
'U':'..-', 'V':'...-', 'W':'.--',
'X':'-..-', 'J':'-.--', 'Z':'--..',
'1':'.', '2':'..', '3':'...--',
'4':'...-', '5':'...', '6':'-...',
'7':'--...', '8':'..', '9':'.',
'0':'', ', ':'--..--', '.':'.-.-.-',
'?':'..--..', '/':'-..-.', '-':'-...-',
'(':'-.--.', ')':'-.--.-' }
Declareer een functie met de naam versleutelen die accepteert bericht als invoerparameter. Initialiseer binnen de functie een variabele met de naam cijfer met een lege string. U gebruikt dit om het gecodeerde bericht te maken en op te slaan. Declareer vervolgens een for-lus die elke letter in het bericht herhaalt.
Als de letter geen witruimte is, geeft u deze door aan het woordenboek om deze op te zoeken. Het woordenboek retourneert de corresponderende More-codewaarde op basis van de sleutel. Voeg een spatie toe om de tekens van de morsecode te scheiden en gebruik de afkorting += operator om het samen te voegen met de code die uit het woordenboek is verkregen. Als de letter een spatie is, voegt u een extra spatie toe aan het cijfer; Morsecode scheidt woorden met twee opeenvolgende spaties.
defversleutelen(bericht):
cijfer = ""
voor brief in bericht:
als brief != " ":
cijfer += MORSE_CODE_DICT[letter] + " "
anders:
cijfer += " "
opbrengst cijfer
Declareer een functie genaamd decrypt die accepteert bericht als invoerparameter. Voeg aan het einde een spatie toe met behulp van de steno-operator om toegang te krijgen tot het laatste teken van de morsecode. Initialiseer twee variabelen, ontcijfer en citekst om lege snaren vast te houden. De decipher-variabele bevat de gedecodeerde zin bestaande uit het Engelse alfabet, terwijl je citext gebruikt om elke letter van de morsecode op te slaan.
Herhaal een for-lus die door elke letter van de morsecode loopt. Als de letter geen witruimte is, initialiseer dan een tellervariabele i die het aantal spaties op nul bijhoudt en sla de morsecode van een enkel teken op in citext. Anders is de letter een spatie, dus verhoog de teller met één.
Als de teller gelijk is aan twee, betekent dit dat u witruimte moet toevoegen aan de gedecodeerde woordvariabele ontcijferen. Anders opent u de sleutels met behulp van hun waarden. Om dit te doen, herhaalt u de sleutel-waardeparen in het woordenboek met behulp van de items-functie. Als de citext gelijk is aan de waarde, voegt u de corresponderende sleutel toe aan de ontcijfervariabele met behulp van de steno-operator.
Wis ten slotte de citext om de volgende letter te krijgen en retourneer de verkregen gedecodeerde zin naar de functieaanroep.
defdecoderen(bericht):
bericht += " "
ontcijferen = ""
citekst = ""voor brief in bericht:
als brief != " ":
ik = 0
citekst += letter
anders:
ik += 1als ik == 2:
ontcijferen += " "
anders:
voorsleutel, waardeinMORSE_CODE_DICT.items():
als citext == waarde:
ontcijfer += sleutelcitekst = ""
opbrengst ontcijferen
Test de functies met wat voorbeeldinvoer. Begin met het initialiseren van een variabele met de naam bericht met het woord of de zin die u wilt coderen. Gebruik de bovenste functie om alle letters om te zetten in hoofdletters en deze als argument door te geven aan de versleutelingsfunctie. Morsecode bevat alleen hoofdletters, de sleutels in het woordenboek. Dit helpt ook om onnodige runtime-controles voor geldige gevallen te voorkomen.
Druk de resulterende waarde af om het morsecode-equivalent van de oorspronkelijke zin te bekijken.
Sla vervolgens een morsecode op in de berichtvariabele en geef deze door aan de decoderingsfunctie. Druk het resultaat af en controleer of het correct is.
In plaats van de invoer hard te coderen, kunt u deze van de gebruiker accepteren met de invoer() functie.
bericht = "Gebruikmaken van"
resultaat = versleutelen (message.upper())
afdrukken(resultaat)
bericht = "-- .- -.-. ..-.... ..-."
resultaat = decoderen (bericht)
afdrukken(resultaat)
Uitvoer van Morse Code Translator in Python
Het Python-programma vertaalt elke letter van het Engelse alfabet naar zijn morsecode-equivalent en geeft deze weer op het uitvoerscherm van de terminal, zoals weergegeven. Als u de verkregen uitvoer kopieert en doorgeeft voor decodering, ontvangt u de originele tekst die u eerder hebt doorgegeven. Dit verifieert dat de vertaling perfect werkte.
Mobiele toepassingen voor morsecode
Morsecode-vertalers zijn gratis binnen handbereik. Meer dan honderden applicaties zoals Morse Mania, Morse Trainer, Morse Code Reader, Morse Code Keyboard en Morse Code Translator zijn beschikbaar op verschillende platformen. Tot uw verbazing wordt het zelfs ondersteund door GBoard - het Google-toetsenbord.
Om toegang te krijgen tot morsecode op uw Gboard, opent u het pictogram Instellingen op het Gboard, selecteert u Talen en tikt u op Engels (VS). Veeg naar rechts door de opties en kies vervolgens Morsecode. Je toetsenbord ondersteunt nu het invoegen van morsecodes en toegankelijkheidsservices, zoals TalkBack, Switch Access of Select to Speak.