如何让我的 Python 摩尔斯电码解码器在一个词被翻译后分离?
How to get my Python Morse code-decoder to separate after a word has been translated?
当我将解码器设置为 运行 时,我可以将莫尔斯码的单词翻译成普通单词,但如果我使用多个单词,它不会将这些单词分开,我该如何分开这些单词?这是我的代码:
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
以外的任何其他分隔符,因此您无法以任何方式划分单词。
你的解决方案是给你的输入一个单词分隔符(例如
(double space),然后用 .split(" ")
分割并循环 tru 单词。
其他解决方案可能是 nltk
库,它可能有一些特殊的功能 - 但我只是猜测。
当我将解码器设置为 运行 时,我可以将莫尔斯码的单词翻译成普通单词,但如果我使用多个单词,它不会将这些单词分开,我该如何分开这些单词?这是我的代码:
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
以外的任何其他分隔符,因此您无法以任何方式划分单词。
你的解决方案是给你的输入一个单词分隔符(例如
(double space),然后用 .split(" ")
分割并循环 tru 单词。
其他解决方案可能是 nltk
库,它可能有一些特殊的功能 - 但我只是猜测。