Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Морзовата азбука съществува от началото на 1800 г. и е намерила своя път към цифровата ера. От службата като критично средство за комуникация по време на Втората световна война до изпращане на криптирани съобщения в авиацията и морската пехота, азбуката на Морз е тук, за да остане.

Ако не знаете за този завладяващ език, пригответе се не само да откриете морзовата азбука, но и да създадете свой собствен преводач с помощта на Python.

Какво е Морзова азбука?

Морзовата азбука е метод за комуникация, при който кодирате текстови знаци в стандартна последователност от два сигнала с различна продължителност, обозначени с точки и тирета. Морзовата азбука получава името си от Самуел Морз, един от изобретателите на телеграфа. Можете да го запомните и да го предадете чрез звукови вълни или видима светлина, възприемаема от човешките сетива.

Дължината на еквивалента на морзовата азбука е обратна на нашата честота на използване на тази азбука и можете да видите, че морзовата азбука присвоява най-често срещаната буква в английския език, E, само на точка.

instagram viewer

Можете да използвате тези безплатен морзов софтуер и приложения за изпращане на кодирани съобщения един на друг. От друга страна, изучаването на морзов код е сравнително лесно и можете да го научите в рамките на един месец с доста практика. За да ви помогнем да започнете, ето ги девет сайта за изучаване на морзовата азбука безплатно.

Как да създадете преводач на морзов код с помощта на Python

Започнете с дефиниране на речник на Python с име MORSE_CODE_DICT за съхраняване на стойностите на морзовия код. Ключовете ще бъдат букви от английската азбука, със съответната последователност от точки или тирета като съответстваща стойност. С помощта на речник можете бързо да търсите произволен ключ до съответната му стойност.

MORSE_CODE_DICT = { "А":'.-', "Б":'-...',
'° С':'-.-.', 'Д':'-..', "Е":'.',
"F":'..-.', "G":'--.', "H":'...',
аз:'..', "J":'.', "К":'-.-',
"л":'.-..', "М":'--', 'Н':'-.',
"О":'', "П":'.--.', "Q":'--.-',
"R":'.-.', 'С':'...', 'T':'-',
'U':'..-', "V":'...-', "W":'.--',
'Х':'-..-', 'Y':'-.--', 'Z':'--..',
'1':'.', '2':'..', '3':'...--',
'4':'...-', '5':'...', '6':'-...',
'7':'--...', '8':'..', '9':'.',
'0':'', ', ':'--..--', '.':'.-.-.-',
'?':'..--..', '/':'-..-.', '-':'-...-',
'(':'-.--.', ')':'-.--.-' }

Декларирайте функция с име encrypt, която приема съобщение като входен параметър. Вътре във функцията инициализирайте променлива с име шифър с празен низ. Ще използвате това, за да създадете и съхраните шифрованото съобщение. След това декларирайте for цикъл, който итерира всяка буква в съобщението.

Ако буквата не е бяло пространство, прехвърлете я в речника за търсене. Речникът връща съответната стойност на кода Още въз основа на ключа. Добавете интервал, за да разделите знаците на морзовата азбука и използвайте стенографията += оператор, за да го свържете с кода, получен от речника. Ако буквата е бяло пространство, добавете допълнителен интервал към шифъра; Морзовата азбука разделя думите с два последователни интервала.

дефкриптиране(съобщение):
шифър = ""
за писмо в съобщение:
ако писмо!= " ":
шифър += MORSE_CODE_DICT[буква] + " "
друго:
шифър += " "
връщане шифър

Декларирайте функция с име decrypt, която приема съобщение като входен параметър. Добавете интервал в края, като използвате оператора за стенограма за достъп до последния знак от морзовия код. Инициализирайте две променливи, дешифрирайте и citext за задържане на празни низове. Променливата за дешифриране ще съдържа дешифрираното изречение, състоящо се от английската азбука, докато вие използвате citext за съхраняване на всяка буква от морзовия код.

Повторете for цикъл, който минава през всяка буква от морзовия код. Ако буквата не е бяло пространство, инициализирайте променлива на брояча i, която следи броя на интервалите до нула и съхранява морзовия код на един знак в citext. В противен случай буквата е интервал, така че увеличете брояча с едно.

Ако броячът е равен на две, това означава, че трябва да добавите празно пространство към променливата декриптирана дума decrypt. В противен случай достъпете ключовете, като използвате техните стойности. За да направите това, итерирайте двойките ключ-стойност в речника, като използвате функцията items. Ако citext е равен на стойността, добавете съответния ключ към променливата за дешифриране, като използвате съкратения оператор.

Накрая изчистете цитатния текст, за да получите следващата буква и да върнете полученото декриптирано изречение към извикването на функцията.

дефдекриптиране(съобщение):
съобщение += " "
дешифрирам = ""
citext = ""

за писмо в съобщение:
ако писмо!= " ":
i = 0
citext += буква
друго:
i += 1

ако i == 2:
дешифрирам += " "
друго:
заключ, стойноствMORSE_CODE_DICT.предмети():
ако citext == стойност:
дешифрира += ключ

citext = ""

връщане дешифрирам

Тествайте функциите с някакъв примерен вход. Започнете с инициализиране на променлива с име съобщение с думата или изречението, които искате да шифровате. Използвай горен функция за преобразуване на всички букви в главни букви и предаване на функцията за шифроване като аргумент. Морзовата азбука съдържа само главни букви, които са ключовете в речника. Това също помага да се избегнат ненужни проверки по време на изпълнение за валиден регистър.

Отпечатайте получената стойност, за да видите еквивалента на морзовата азбука на оригиналното изречение.

След това запазете морзов код в променливата на съобщението и го предайте на функцията за дешифриране. Отпечатайте резултата и проверете дали е правилен.

Вместо да кодирате входа, можете да го приемете от потребителя с вход() функция.

съобщение = "Да се ​​възползват от"
резултат = криптиране (message.upper())
печат(резултат)

съобщение = "-- .- -.-. ..-.... ..-."
резултат = декриптиране (съобщение)
печат(резултат)

Извеждане на преводача на морзов код в Python

Програмата Python превежда всяка буква от английската азбука в нейния еквивалент на морзовата азбука и я показва на изходния екран на терминала, както е показано. Ако копирате получения резултат и го предадете за дешифриране, ще получите оригиналния текст, който сте предали по-рано. Това потвърждава, че преводът работи перфектно.

Мобилни приложения за Морзова азбука

Преводачите на морзова азбука са достъпни безплатно на една ръка разстояние. Повече от стотици приложения като Morse Mania, Morse Trainer, Morse Code Reader, Morse Code Keyboard и Morse Code Translator са налични на различни платформи. За ваша изненада, той дори се поддържа от GBoard - клавиатурата на Google.

За достъп до Morse Code на вашия Gboard, отворете иконата за настройки на Gboard, изберете Езици и докоснете английски (САЩ). Плъзнете надясно през опциите и след това изберете Морзова азбука. Вашата клавиатура вече поддържа вмъкване на морзов код заедно с услуги за достъпност, като TalkBack, Switch Access или Select to Speak.