我正在写一个小脚本,将莫尔斯电码转换为纯文本。
例如:
"···· · −·−− ·−−− ··− −·· ·"
将返回CCD_ 1。但是,我希望它是"HEY JUDE"
,在两个单词之间有一个空格。
"HEY"
和"JUDE"
的莫尔斯电码之间有3个空格,我认为.split()
在这里帮不了我。你能给我一个指针吗?
def decodeMorse(morse_code):
morseDict = {".-" : "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"
}
cipher = morse_code.split(" ")
plain = []
for n in cipher:
plain.append(morseDict[n])
plain = "".join(plain)
return plain
在decodeMorse()
的第一行,您可以将3个相邻空间中的中间空间替换为任何不同的字符:
morse_code = morse_code.replace(' ', ' @ ')
则将该字符添加到CCD_ 7。
morseDict['@']=' '
代码的其余部分不需要修改。
也许你可以分两步,第一步是
.split(' ') #with 3 spaces
一个字一个字地解码,然后解码每个字,在两者之间添加您想要的空格!
如果您的输入是这样的,您可以先用三重空间将它们拆分,然后分别迭代每个单词。
code = ".... . −.−− .−−− ..− −.. ."
words = code.split(" ")