Казалось бы, 21 век, оптоволокно, 3/4G и прочие прелести прогресса —
какая азбука Морзе, и уж тем более конвертер азбуки Морзе в текст, и из текста в азбуку Морзе, да еще на Python? Но нет, мы против спокойствия 🙂
Совсем недавно рассказывал своему сыну о истории связи, и вспомнил азбуку Морзе. Учитывая, что он с дочкой ходит на курсы по роботехнике, а так же недавний разговор быстренько накропал конвертатор (в планах сделать с детьми на Arduino аналог радиостанции на азбуке Морзе).
Устроен он крайне просто: if — elif, причем сконвертированный код складывается в список, который после окончания обработки выводится в полном виде.
def morse_text():
print('q - выход')
morse_table = []
while True:
string = str(input('Введите код Морзе (1 символ): '))
if string == ('q'):
break
elif string == '.-':
morse_code = ('а')
print(morse_code)
morse_table.append(morse_code)
elif string == '.......':
morse_code = (' ')
print(morse_code)
morse_table.append(morse_code)
elif string == '-...':
morse_code = ('б')
print(morse_code)
morse_table.append(morse_code)
elif string == '.--':
morse_code = ('в')
print(morse_code)
morse_table.append(morse_code)
elif string == '--.':
morse_code = ('г')
print(morse_code)
morse_table.append(morse_code)
elif string == '-..':
morse_code = ('д')
print(morse_code)
morse_table.append(morse_code)
elif string == '.':
morse_code = ('е')
print(morse_code)
morse_table.append(morse_code)
elif string == '...-':
morse_code = ('ж')
print(morse_code)
morse_table.append(morse_code)
elif string == '--..•':
morse_code = ('з')
print(morse_code)
morse_table.append(morse_code)
elif string == '..':
morse_code = ('и')
print(morse_code)
morse_table.append(morse_code)
elif string == '-.-':
morse_code = ('к')
print(morse_code)
morse_table.append(morse_code)
elif string == '.-..':
morse_code = ('л')
print(morse_code)
morse_table.append(morse_code)
elif string == '--':
morse_code = ('м')
print(morse_code)
morse_table.append(morse_code)
elif string == '-.':
morse_code = ('н')
print(morse_code)
morse_table.append(morse_code)
elif string == '---':
morse_code = ('о')
print(morse_code)
morse_table.append(morse_code)
elif string == '.--.':
morse_code = ('п')
print(morse_code)
morse_table.append(morse_code)
elif string == '.-.':
morse_code = ('р')
print(morse_code)
morse_table.append(morse_code)
elif string == '...':
morse_code = ('с')
print(morse_code)
morse_table.append(morse_code)
elif string == '-':
morse_code = ('т')
print(morse_code)
morse_table.append(morse_code)
elif string == '..-':
morse_code = ('у')
print(morse_code)
morse_table.append(morse_code)
elif string == '..-.':
morse_code = ('ф')
print(morse_code)
morse_table.append(morse_code)
elif string == '....':
morse_code = ('х')
print(morse_code)
morse_table.append(morse_code)
elif string == '-.-.':
morse_code = ('ц')
print(morse_code)
morse_table.append(morse_code)
elif string == '---':
morse_code = ('ц')
print(morse_code)
morse_table.append(morse_code)
elif string == '----':
morse_code = ('ш')
print(morse_code)
morse_table.append(morse_code)
elif string == '--.-':
morse_code = ('щ')
print(morse_code)
morse_table.append(morse_code)
elif string == '--.--':
morse_code = ('ъ')
print(morse_code)
morse_table.append(morse_code)
elif string == '-.--':
morse_code = ('ы')
print(morse_code)
morse_table.append(morse_code)
elif string == '..--':
morse_code = ('ю')
print(morse_code)
morse_table.append(morse_code)
elif string == '.-.-':
morse_code = ('я')
print(morse_code)
morse_table.append(morse_code)
elif string == '.----':
morse_code = ('1')
print(morse_code)
morse_table.append(morse_code)
elif string == '..---':
morse_code = ('2')
print(morse_code)
morse_table.append(morse_code)
elif string == '...--':
morse_code = ('3')
print(morse_code)
morse_table.append(morse_code)
elif string == '....-':
morse_code = ('5')
print(morse_code)
morse_table.append(morse_code)
elif string == '.....':
morse_code = ('5')
print(morse_code)
morse_table.append(morse_code)
elif string == '-....':
morse_code = ('6')
print(morse_code)
morse_table.append(morse_code)
elif string == '--...':
morse_code = ('7')
print(morse_code)
morse_table.append(morse_code)
elif string == '---..•':
morse_code = ('8')
print(morse_code)
morse_table.append(morse_code)
elif string == '----.':
morse_code = ('9')
print(morse_code)
morse_table.append(morse_code)
elif string == '-----':
morse_code = ('0')
print(morse_code)
morse_table.append(morse_code)
elif string == '......':
morse_code = ('. ')
print(morse_code)
morse_table.append(morse_code)
elif string == '.-.-.-':
morse_code = (', ')
print(morse_code)
morse_table.append(morse_code)
elif string == '---...':
morse_code = (':')
print(morse_code)
morse_table.append(morse_code)
elif string == '-.-.-':
morse_code = (';')
print(morse_code)
morse_table.append(morse_code)
elif string == '-.--.-':
morse_code = ('(')
print(morse_code)
morse_table.append(morse_code)
elif string == '-.--.-':
morse_code = (')')
print(morse_code)
morse_table.append(morse_code)
elif string == '.-..-.':
morse_code = ('"')
print(morse_code)
morse_table.append(morse_code)
elif string == '..--..':
morse_code = ('?')
print(morse_code)
morse_table.append(morse_code)
elif string == '--..--':
morse_code = ('!')
print(morse_code)
morse_table.append(morse_code)
elif string == '.--.-.':
morse_code = ('@')
print(morse_code)
morse_table.append(morse_code)
elif string == '-....-':
morse_code = ('-')
print(morse_code)
morse_table.append(morse_code)
elif string == '.......':
morse_code = (' ')
print(morse_code)
morse_table.append(morse_code)
print(morse_table)
morse_table = ''.join(morse_table)
print('Единой строкой: ', morse_table)
def text_morse():
text = []
text = str(input('Введите текст: ')).lower()
print(text)
morse = []
for string in text:
if string == 'а':
morse_code = ('• —')
print(morse_code)
morse.append(morse_code)
elif string == 'б':
morse_code = ('— • • •')
print('— • • •')
morse.append(morse_code)
elif string == 'в':
morse_code = ('• — —')
print('• — —')
morse.append(morse_code)
elif string == 'г':
morse_code = ('— — •')
print('— — •')
morse.append(morse_code)
elif string == 'д':
morse_code = ('— • •')
print('— • •')
morse.append(morse_code)
elif string == 'е':
morse_code = ('• ')
print('• ')
morse.append(morse_code)
elif string == 'ё':
morse_code = ('• ')
print('• ')
morse.append(morse_code)
elif string == 'ж':
morse_code = ('• • • —')
print('• • • —')
morse.append(morse_code)
elif string == 'з':
morse_code = ('— — • •')
print('— — • •')
morse.append(morse_code)
elif string == 'и':
morse_code = ('• •')
print('• •')
morse.append(morse_code)
elif string == 'к':
morse_code = ('— • —')
print('— • —')
morse.append(morse_code)
elif string == 'л':
morse_code = ('• — • •')
print('• — • •')
morse.append(morse_code)
elif string == 'м':
morse_code = ('— —')
print('— —')
morse.append(morse_code)
elif string == 'н':
morse_code = ('— •')
print('— •')
morse.append(morse_code)
elif string == 'о':
morse_code = ('— — —')
print('— — —')
morse.append(morse_code)
elif string == 'п':
morse_code = ('• — — •')
print('• — — •')
morse.append(morse_code)
elif string == 'р':
morse_code = ('• — •')
print('• — •')
morse.append(morse_code)
elif string == 'с':
morse_code = ('• • •')
print('• • •')
morse.append(morse_code)
elif string == 'т':
morse_code = ('—')
print('—')
morse.append(morse_code)
elif string == 'у':
morse_code = ('• • —')
print('• • —')
morse.append(morse_code)
elif string == 'ф':
morse_code = ('• • — •')
print('• • — •')
morse.append(morse_code)
elif string == 'х':
morse_code = ('• • • •')
print('• • • •')
morse.append(morse_code)
elif string == 'ц':
morse_code = ('— • — •')
print('— • — •')
morse.append(morse_code)
elif string == 'ч':
morse_code = ('— — — ')
print('— — — •')
morse.append(morse_code)
elif string == 'ш':
morse_code = ('— — — —')
print('— — — —')
morse.append(morse_code)
elif string == 'щ':
morse_code = ('— — • —')
print('— — • —')
morse.append(morse_code)
elif string == 'ъ':
morse_code = ('— — • — —')
print('— — • — —')
morse.append(morse_code)
elif string == 'ы':
morse_code = ('— • — —')
print('— • — —')
morse.append(morse_code)
elif string == 'ь':
morse_code = ('— • • —')
print('— • • —')
morse.append(morse_code)
elif string == 'ю':
morse_code = ('• • — —')
print('• • — —')
morse.append(morse_code)
elif string == 'я':
morse_code = ('• — • —')
print('• — • —')
morse.append(morse_code)
elif string == '1':
morse_code = ('• — — — —')
print('• — — — —')
morse.append(morse_code)
elif string == '2':
morse_code = ('• • — — —')
print('• • — — —')
morse.append(morse_code)
elif string == '3':
morse_code = ('• • • — —')
print('• • • — —')
morse.append(morse_code)
elif string == '4':
morse_code = ('• • • • —')
print('• • • • —')
morse.append(morse_code)
elif string == '5':
morse_code = ('• • • • •')
print('• • • • •')
morse.append(morse_code)
elif string == '6':
morse_code = ('— • • • •')
print('— • • • •')
morse.append(morse_code)
elif string == '7':
morse_code = ('— — • • •')
print('— — • • •')
morse.append(morse_code)
elif string == '8':
morse_code = ('— — — • •')
print('— — — • •')
morse.append(morse_code)
elif string == '9':
morse_code = ('— — — — •')
print('— — — — •')
morse.append(morse_code)
elif string == '0':
morse_code = ('— — — — —')
print('— — — — —')
morse.append(morse_code)
elif string == '.':
morse_code = ('• • • • • •')
print('• • • • • •')
morse.append(morse_code)
elif string == ',':
morse_code = ('• — • — • —')
print('• — • — • —')
morse.append(morse_code)
elif string == ':':
morse_code = ('— — — • • •')
print('— — — • • •')
morse.append(morse_code)
elif string == ';':
morse_code = ('— • — • —')
print('— • — • —')
morse.append(morse_code)
elif string == '(':
morse_code = ('— • — — • —')
print('— • — — • —')
morse.append(morse_code)
elif string == ')':
morse_code = ('— • — — • —')
print('— • — — • —')
morse.append(morse_code)
elif string == '"':
morse_code = ('• — • • — •')
print('• — • • — •')
morse.append(morse_code)
elif string == '?':
morse_code = ('• • — — • •')
print('• • — — • •')
morse.append(morse_code)
elif string == '!':
morse_code = ('— — • • — —')
print('— — • • — —')
morse.append(morse_code)
elif string == '@':
morse_code = ('• — — • — •')
print('• — — • — •')
morse.append(morse_code)
elif string == '-':
morse_code = ('— • • • • —')
print('— • • • • —')
morse.append(morse_code)
elif string == ' ':
morse_code = ('.......')
print('.......')
morse.append(morse_code)
morse = ''.join(morse)
print('Единой строкой: ', morse)
def choice():
choice = str(input(' Из текста в код Морзе - 1\n Из кода Морзе в текст - 2\n'))
if choice == '1':
text_morse()
elif choice == '2':
morse_text()
choice()
Сам код для загрузки доступен по ссылке.
В случае возникновения вопросов — пожалуйста, пишите на почту.
Да, кстати, чую, что скоро буду заниматься подготовкой рядя материалов по Arduino 🙂 Но это пока не точно… : )Спасибо за внимание! И не забывайте делиться ссылкой на пост в соц.сетях.