Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/27: Рейтинг темы: голосов - 27, средняя оценка - 4.63
Studying
 Аватар для Vermont74
2 / 2 / 0
Регистрация: 13.03.2021
Сообщений: 38

Декодировка морзе

20.01.2022, 19:25. Показов 5430. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте. Необходимо корректно написать функцию декодировщика кода с языка морзе на обычный, латинский. Вся задача заключается в том, чтобы написать две функции - кодировщик в язык морзе и декодировщик с языка морзе. Первая получилась, вторая нет. Непонятки, сплошные непонятки.
Попытки:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
MorseCode = {'A': '.-', 'B': '-...',
             'C': '-.-.', 'D': '-..', 'E': '.',
             'F': '..-.', 'G': '--.', 'H': '....',
             'I': '..', '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': '-----', ', ': '--..--', '.': '.-.-.-',
             '?': '..--..', '/': '-..-.', '-': '-....-',
             '(': '-.--.', ')': '-.--.-'}
 
MorseUnCode = {'.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E', '..-.': 'F', '--.': 'G', '....': 'H',
               '..': 'I', '.---': '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', '--..--': ', ', '.-.-.-': '.', '..--..': '?',
               '-..-.': '/', '-....-': '-', '-.--.': '(', '-.--.-': ')'}
 
 
def encode_to_morse(text):
    lst = text.upper().split()
    ans = []
    for elem in lst:
        ans.append(''.join(MorseCode[i] for i in elem))
    return ' '.join(ans)
 
 
def decode_from_morse(code):
    lst = code.split()
    ans = []
    for elem in lst:
        ans.append(''.join(MorseUnCode[i] for i in elem))
    return ' '.join(ans)
 
 
def main():
    while True:
        answer = input('Раскодировать или закодировать?\nВведите "раскод" если хотите раскодировать, и '
                       '"закод" если хотите закодировать.\n')
        if answer == 'раскод':
            print(decode_from_morse(input('Введите код для расшифровки\n')))
        elif answer == 'закод':
            print(encode_to_morse(input('Введите код для зашифровки\n')))
        else:
            print('Введите корректную команду.')
 
 
main()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2022, 19:25
Ответы с готовыми решениями:

Азбука морзе
Разместите на форме кнопки с латинскими буквами, а так же поле для ввода. При нажатии на кнопку добавляйте в поле код этой буквы из азбуки...

Азбука морзе
Напишите программу, которая умеет переводить текст в азбуку Морзе и наоборот. Для "тире" используйте символ "—", для...

Азбука Морзе
Не проходит 3 теста из 7. Понимаю, очень коряво и костыльно, но хочешь жить - умей вертеться) Пожалуйста, помогите исправить ошибки,...

4
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
20.01.2022, 20:34
Лучший ответ Сообщение было отмечено Vermont74 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
def encode_to_morse(text):
    return ' '.join([MorseCode[i] for i in text.upper()])
 
 
def decode_from_morse(code):
    return ''.join([MorseUnCode[i] for i in code.split()])
 
 
s = encode_to_morse('amatory')
print(s)
print(decode_from_morse(s))
2
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
20.01.2022, 20:34
Тут поможет, наверно, Алгоритм Хаффмана
0
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
20.01.2022, 21:49
Лучший ответ Сообщение было отмечено Vermont74 как решение

Решение

добавив символ пробела ' ' : '\\' решение с одним словарем( вдруг кому захочется по китайски шифровать а там 5000 символов только в один словарь писать )
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
MorseCode = {'A': '.-', 'B': '-...',
             'C': '-.-.', 'D': '-..', 'E': '.',
             'F': '..-.', 'G': '--.', 'H': '....',
             'I': '..', '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': '-----', ', ': '--..--', '.': '.-.-.-',
             '?': '..--..', '/': '-..-.', '-': '-....-',
             '(': '-.--.', ')': '-.--.-', ' ' : '\\'}
 
 
def encode_to_morse(text):
    return ' '.join([MorseCode[elem] for elem in text.upper()])
 
def decode_from_morse(code_):
    inverse_dict = dict([val,key] for key,val in MorseCode.items())
    return ''.join([inverse_dict[elem] for elem in code_.split()])
 
    
 
s = encode_to_morse('For who would bear the whips and scorns of time')
print(s)
print(decode_from_morse(s))
1
Studying
 Аватар для Vermont74
2 / 2 / 0
Регистрация: 13.03.2021
Сообщений: 38
21.01.2022, 18:33  [ТС]
iSmokeJC, если программа содержит в себе несколько слов, разделенных пробелами, то программа крашнет. но я понял, как решить проблему - достаточно в словарь с расшифровкой добавить символ пробела.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2022, 18:33
Помогаю со студенческими работами здесь

Слова из английского в Морзе
я преобразовал слова из английского в морзе, но у две проблемы: 1)слова повторяются 2) не подсчитывается количество правильных ответов в...

Закодировать и раскодировать азбукой Морзе
Вводится строка из русских букв. Необходимо ее закодировать, а затем, раскодировать азбукой Морзе. После каждой закодированной буквы должен...

Перевести текст в азбуку морзе и наоборот
Всем привет, я решил попробовать написать код, который будет переводить текст в азбуку морзе и на оборот. Но на оборот у меня не...

Азбука Морзе, которая почему-то не работает
Каждая буква заменяется на последовательность точек и тире. В качестве тире используйте обычный дефис: «-», а в качестве точки — точку «.»....

Программа для (де-)кодировки сообщения в азбуку Морзе
Написать программу, которая будет кодировать сообщения в азбуку Морзе и декодировать обратно. Код Морзе возьмите из Википедии:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru