| |
| MORSE_TO_TEXT = { |
| '.-': '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' |
| } |
|
|
| def decode_morse(morse_code: str) -> str: |
| """ |
| Decodes a Morse code string into plain text. |
| - Single spaces separate individual letters. |
| - Triple spaces (or a unique delimiter) separate entire words. |
| """ |
| decoded_message = [] |
| |
| |
| words = morse_code.split(' ') |
| |
| for word in words: |
| decoded_word = "" |
| |
| letters = word.split(' ') |
| |
| for letter in letters: |
| |
| if letter in MORSE_TO_TEXT: |
| decoded_word += MORSE_TO_TEXT[letter] |
| |
| decoded_message.append(decoded_word) |
| |
| |
| return ' '.join(decoded_message) |
|
|
| |
| if __name__ == "__main__": |
| |
| morse = input("Please input your morse code in ...s and ---s") |
| print("Decoded data:", decode_morse(sample_morse)) |
|
|