首页 > 解决方案 > 试图将摩尔斯电码翻译成英文

问题描述

我正在尝试使用我使用的字典将摩尔斯电码翻译成英语。我试图让它在用户输入消息的地方,它将他/她的消息打印成摩尔斯电码。

我发现翻译成摩尔斯电码很容易,但是将摩尔斯电码翻译成英语给我带来了一些问题。

首先,如果我为“A”键入“.-”,我实际上会得到“E”,因为它正在读取第一个“。” 键并将其翻译成'E'而不是获取整个字符串。

这是我到目前为止所尝试的:)

#If user types 'N' or 'n' it proceeds this loop
if morse_message == 'N' or morse_message == 'n':    #Loops looks to see if morse_message was 'N' or 'n'
    nomorse = input("Enter your Morse code here:")
    nomorse_list = (nomorse.join('')
    for letter in nomorse_list:
        not_morse = (morse_eng_dict[letter.upper()])
        print(not_morse)

这是我的字典

morse_eng_dict = {".-": "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"}

我想让 Python 获取我的摩尔斯电码并将消息打印回英文。比如...之类的东西 .-.. .-.. --- (这是你好)

这是一个项目,所以我不能使用任何花哨的模块或任何东西。有什么想法或意见吗?谢谢!

标签: pythonloopsdictionaryif-statementmorse-code

解决方案


莫尔斯电码是模棱两可的。正如您所指出的,.- 可以被视为 et 或 a。如果不求助于大字典或一些模糊逻辑,就无法轻松区分它们。

运算符倾向于使用空格来分隔字母和单词: https ://en.wikipedia.org/wiki/Morse_code

“一个单词的字母由一个等于三个点(一个破折号)的空格隔开,单词之间由一个等于七个点的空格隔开。” 如果您在莫尔斯电码字符串中插入空格,例如:字母之间的 1 个空格和单词之间的 2 个空格,这将使解码变得轻而易举(拆分然后映射)


推荐阅读