python - 试图将摩尔斯电码翻译成英文
问题描述
我正在尝试使用我使用的字典将摩尔斯电码翻译成英语。我试图让它在用户输入消息的地方,它将他/她的消息打印成摩尔斯电码。
我发现翻译成摩尔斯电码很容易,但是将摩尔斯电码翻译成英语给我带来了一些问题。
首先,如果我为“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 获取我的摩尔斯电码并将消息打印回英文。比如...之类的东西 .-.. .-.. --- (这是你好)
这是一个项目,所以我不能使用任何花哨的模块或任何东西。有什么想法或意见吗?谢谢!
解决方案
莫尔斯电码是模棱两可的。正如您所指出的,.- 可以被视为 et 或 a。如果不求助于大字典或一些模糊逻辑,就无法轻松区分它们。
运算符倾向于使用空格来分隔字母和单词: https ://en.wikipedia.org/wiki/Morse_code
“一个单词的字母由一个等于三个点(一个破折号)的空格隔开,单词之间由一个等于七个点的空格隔开。” 如果您在莫尔斯电码字符串中插入空格,例如:字母之间的 1 个空格和单词之间的 2 个空格,这将使解码变得轻而易举(拆分然后映射)
推荐阅读
- listview - QML:当元素超过 40 个元素时,ListView 的行为很奇怪
- google-cloud-platform - 我们如何在通过 EventARc 触发器创建的云发布订阅中启用排序?
- javascript - DFS + memo:如何分析时间和空间复杂度
- python - Ariflow can't seem to use Jinja templating correctly
- python-3.x - 在 Python 中通过 ARM 模板部署 Azure 数据工厂的问题
- join - 如何在 Kusto 数据库的连接条件下将列转换为小写
- php - 如何使用 PHP 在 GAE 上配置 app.yaml
- python - 使用 Numpy 将 2D 数组拆分为具有一定重叠的更小的 2D 数组
- google-data-studio - 如何在数据工作室中为计算字段做累积和
- typescript - 打字稿 - 使用函数字典