问题描述
当我让我的解码器运行时,我可以将一个单词从 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
库,它可能有一些特殊的功能 - 但在这里我只是猜测。