如何在翻译单词后让我的 Python 莫尔斯电码解码器分离?

问题描述

当我让我的解码器运行时,我可以将一个单词从 Morse 翻译成普通单词,但如果我使用多个单词,它不会分隔这些单词,我该如何分隔单词?这是我的代码

code_dict =  {'.-...': '&','--..--': ',','....-': '4','.....': '5','...---...': 'SOS','-...': 'B','-..-': 'X','.-.': 'R','.--': 'W','..---': '2','.-': 'A','..': 'I','..-.': 'F','.': 'E','.-..': 'L','...': 'S','..-': 'U','..--..': '?','.----': '1','-.-': 'K','-..': 'D','-....': '6','-...-': '=','---': 'O','.--.': 'P','.-.-.-': '.','--': 'M','-.': 'N','....': 'H','.----.': "'",'...-': 'V','--...': '7','-.-.-.': ';','-....-': '-','..--.-': '_','-.--.-': ')','-.-.--': '!','--.': 'G','--.-': 'Q','--..': 'Z','-..-.': '/','.-.-.': '+','-.-.': 'C','---...': ':','-.--': 'Y','-': 'T','.--.-.': '@','...-..-': '$','.---': 'J','-----': '0','----.': '9','.-..-.': '"','-.--.': '(','---..': '8','...--': '3'
     }

def decodeMorse(morseCode):
    results = []
    for item in morseCode.split(' '):
        results.append(code_dict.get(item))
    results = ''.join(results)
    return results.lower()

morseCode = input('Message: ')
print(decodeMorse(morseCode))

编辑:

hello my name is,是:

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

当我运行解码器时,它给我 hellomynameis,我希望它给我 hello my name is

解决方法

你的例子使它不可能。除了输入中的 space 之外,您没有提供任何其他分隔符,因此您无法以任何方式分隔单词。

您的解决方案是给您的输入一个单词分隔符(例如 (双空格),然后用 .split(" ") 分割并循环真实单词)。

其他解决方案可能是 nltk 库,它可能有一些特殊的功能 - 但在这里我只是猜测。