• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 1. Ввод и вывод данных

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Код Морзе»

💻 Python
Код Морзе — способ кодирования букв последовательностями точек и тире. Буквы в сообщении разделены пробелом, слова — тремя пробелами. Напишите программу, которая принимает строку кода Морзе и выводит декодированное сообщение заглавными буквами. Словарь: '.-':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, 0–9 по порядку, SOS — особый символ.

Формат ввода

Одна строка, содержащая сообщение на коде Морзе. Используются символы . (точка), - (тире) и пробелы.

Формат Вывода

Одна строка — декодированное сообщение в верхнем регистре на английском языке.

Пример

Ввод

.... . -.-- .--- ..- -.. .

Вывод

HEY JUDE

Подсказка

Тут подсказки не будет, решай сам!

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Словарь для сопоставления кодов Морзе и символов.
# Включает специальный код для SOS.
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', 
                    '-.--':'Y', '--..':'Z', '-----':'0', '.----':'1', '..---':'2', 
                    '...--':'3', '....-':'4', '.....':'5', '-....':'6', '--...':'7', 
                    '---..':'8', '----.':'9', '···−−−···':'SOS' }

def decode_morse(morse_code: str) -> str:
    """
    Декодирует строку с кодом Морзе в человекочитаемый текст.
    
    :param morse_code: Строка с кодом Морзе.
    :return: Декодированная строка.
    """
    # Удаляем лишние пробелы в начале и конце строки
    morse_code = morse_code.strip()
    
    decoded_message = []
    # Разделяем сообщение на слова по трём пробелам
    morse_words = morse_code.split('   ')
    
    for morse_word in morse_words:
        decoded_word = ''
        # Разделяем слово на коды букв по одному пробелу
        morse_letters = morse_word.split(' ')
        for letter_code in morse_letters:
            # Находим соответствующий символ в словаре
            # Используем get для избежания ошибки, если код не найден
            decoded_word += MORSE_CODE_DICT.get(letter_code, '')
        decoded_message.append(decoded_word)
        
    # Соединяем декодированные слова в одно предложение
    return ' '.join(decoded_message)

# Пример использования из условия
input_morse = input()
print(decode_morse(input_morse))

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, объяснить то, что тебе не понятно, а также о текущей задаче!