Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/47: Рейтинг темы: голосов - 47, средняя оценка - 4.55
 Аватар для Alenkkkka
0 / 0 / 0
Регистрация: 16.03.2021
Сообщений: 4

Азбука Морзе

16.03.2021, 23:19. Показов 9851. Ответов 7

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

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
55
56
57
58
59
60
content = input()
 
 
def good(content):
    result = []
    content = str(content).lower()
 
    for element in content:
        if ord(element) >= 1072 and ord(element) <= 1103 or element == ' ':
            result.append(element)
 
    return result
 
 
dic = {'а': '.-',
                    'б': '-...',
                    'в': '.--',
                    'г': '--.',
                    'д': '-..',
                    'е': '.',
                    'ж': '...-',
                    'з': '--..',
                    'и': '..',
                    'й': '.---',
                    'к': '-.-',
                    'л': '.-..',
                    'м': '--',
                    'н': '-.',
                    'о': '---',
                    'п': '.--.',
                    'р': '.-.',
                    'с': '...',
                    'т': '-', 
                    'у': '..-',
                    'ф': '..-.',
                    'х': '....',
                    'ц': '-.-.',
                    'ч': '---.',
                    'ш': '----',
                    'щ': '--.-',
                    'ъ': '.--.-.',
                    'ы': '-.--',
                    'ь': '-..-',
                    'э': '..-..',
                    'ю': '..--',
                    'я': '.-.-',
                    ' ': '\n'}
 
content = good(content)
result = []
 
for element in content:
    result.append(dic[element])
        
    
for i in result:
    if i != '\n':
        print(i, end = ' ' )
    else:
        print()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2021, 23:19
Ответы с готовыми решениями:

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

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

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

7
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
17.03.2021, 00:15
Alenkkkka,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dic = {'а': '.-', 'б': '-...', 'в': '.--', 'г': '--.', 'д': '-..', 'е': '.', 'ж': '...-', 'з': '--..', 'и': '..',
       'й': '.---', 'к': '-.-', 'л': '.-..', 'м': '--', 'н': '-.', 'о': '---', 'п': '.--.', 'р': '.-.', 'с': '...',
       'т': '-', 'у': '..-', 'ф': '..-.', 'х': '....', 'ц': '-.-.', 'ч': '---.', 'ш': '----', 'щ': '--.-',
       'ъ': '.--.-.',
       'ы': '-.--', 'ь': '-..-', 'э': '..-..', 'ю': '..--', 'я': '.-.-', ' ': '\n'}
 
result = []
for word in input().split():
    word2 = []
    for i in word:
        if i in "абвгдежзийклмнопрстуфхцчшщъыьэюя ":
            word2.append(dic[i])
    result.append("".join(word2))
 
print(*result, sep=" ")
Добавлено через 43 минуты
Либо если короче
Python
1
2
3
4
5
6
7
8
dic = {'а': '.-', 'б': '-...', 'в': '.--', 'г': '--.', 'д': '-..', 'е': '.', 'ж': '...-', 'з': '--..', 'и': '..',
       'й': '.---', 'к': '-.-', 'л': '.-..', 'м': '--', 'н': '-.', 'о': '---', 'п': '.--.', 'р': '.-.', 'с': '...',
       'т': '-', 'у': '..-', 'ф': '..-.', 'х': '....', 'ц': '-.-.', 'ч': '---.', 'ш': '----', 'щ': '--.-',
       'ъ': '.--.-.',
       'ы': '-.--', 'ь': '-..-', 'э': '..-..', 'ю': '..--', 'я': '.-.-', ' ': '\n'}
 
print(*["".join([dic[i] for i in word if i in "абвгдежзийклмнопрстуфхцчшщъыьэюя "]) for word in input().split()], 
      sep=" ")
0
 Аватар для Alenkkkka
0 / 0 / 0
Регистрация: 16.03.2021
Сообщений: 4
17.03.2021, 00:26  [ТС]
Спасибо, но, к сожалению не прошло ни один тест.
Это моя оплошность, не приложила условие, оно несколько отличается от классического понимания о кодере азбуки Морзе.


Напиши программу, которая кодирует сообщения на русском языке при помощи азбуки Морзе. Программа должна кодировать только буквы русского алфавита, без учета регистра, а все остальные знаки (запятые, точки, и т.д.) кодировать не нужно. В качестве словаря возьми азбуку записанную на странице: https://ru.wikipedia.org/wiki/Азбука_Морзе

На вход программе подается единственная строка в которой содержатся буквы русского алфавита. Программа должна разбить строку на слова по пробелам и вывести закодированную строку в виде азбуки морзе где, точка это обычная точка ".", а тире это просто тире "-", каждая закодированная буква должна отделятся пробелом от предыдущей, а каждое новое слово должно начинаться с новой строки.
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
17.03.2021, 00:34
Python
1
2
3
4
5
6
7
dic = {'а': '.-', 'б': '-...', 'в': '.--', 'г': '--.', 'д': '-..', 'е': '.', 'ж': '...-', 'з': '--..', 'и': '..',
       'й': '.---', 'к': '-.-', 'л': '.-..', 'м': '--', 'н': '-.', 'о': '---', 'п': '.--.', 'р': '.-.', 'с': '...',
       'т': '-', 'у': '..-', 'ф': '..-.', 'х': '....', 'ц': '-.-.', 'ч': '---.', 'ш': '----', 'щ': '--.-',
       'ъ': '.--.-.',
       'ы': '-.--', 'ь': '-..-', 'э': '..-..', 'ю': '..--', 'я': '.-.-', ' ': ' '}
 
print("".join(["".join([dic[i] for i in word if i in "абвгдежзийклмнопрстуфхцчшщъыьэюя "]) for word in input().lower()]))
так работают пробелы вроде

Добавлено через 6 минут
Alenkkkka,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dic = {'а': '.-', 'б': '-...', 'в': '.--', 'г': '--.', 'д': '-..', 'е': '.', 'ж': '...-', 'з': '--..', 'и': '..',
       'й': '.---', 'к': '-.-', 'л': '.-..', 'м': '--', 'н': '-.', 'о': '---', 'п': '.--.', 'р': '.-.', 'с': '...',
       'т': '-', 'у': '..-', 'ф': '..-.', 'х': '....', 'ц': '-.-.', 'ч': '---.', 'ш': '----', 'щ': '--.-',
       'ъ': '.--.-.',
       'ы': '-.--', 'ь': '-..-', 'э': '..-..', 'ю': '..--', 'я': '.-.-'}
 
result = []
for word in input().split():
    word2 = []
    for i in word:
        if i in "абвгдежзийклмнопрстуфхцчшщъыьэюя":
            word2.append(dic[i])
    result.append(" ".join(word2))
 
print(*result, sep="\n")
если отдельно выводить
0
 Аватар для Alenkkkka
0 / 0 / 0
Регистрация: 16.03.2021
Сообщений: 4
17.03.2021, 13:51  [ТС]
спасибо, но попрежнему ломается на первом тесте
ввод:
ит-класс
корректный вывод:
.. - -.- .-.. .- ... ...
фактический вывод:
-.- .-.. .- ... ...
то есть программа просто игнорирует «ит»
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
17.03.2021, 14:57
Alenkkkka, всё выводит верно

C:\Users\ADN\PycharmProjects\ExlCut\venv \Scripts\python.exe C:/Users/ADN/PycharmProjects/ExlCut/CyberHelp/exp.py
ит-класс
.. - -.- .-.. .- ... ...
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
17.03.2021, 21:11
Alenkkkka, вы, наверное, не тот код взяли?
0
 Аватар для Alenkkkka
0 / 0 / 0
Регистрация: 16.03.2021
Сообщений: 4
19.03.2021, 19:11  [ТС]
Действительно, я не права, выводится корректно, но все равно выдаёт ошибку, вероятно потому что нет пробела в конце строки, это единственное отличие, которое я нашла(маразм конечно)

Correct output:
.. -
-.- .-.. .- ... ...


Your code output:
.. -
-.- .-.. .- ... ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2021, 19:11
Помогаю со студенческими работами здесь

Азбука
Знакомые нам воспитанники детского сада наконец-то начали учить буквы. Воспитатель предложил ребятам назвать слова, которые начинаются с А,...

Декодировка морзе
Здравствуйте. Необходимо корректно написать функцию декодировщика кода с языка морзе на обычный, латинский. Вся задача заключается в том,...

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru