摩斯密码摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号,不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种: 点、划、点和划之间的停顿、每个词之间中等的停顿以及句子之间长的停顿。
可以参考以下表格:
一、创建字典
首先,要将字母和摩斯密码都储存在一个字典里。
# 给字典赋值
letter_morse = {"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":"--.."}
print(letter_morse) # 打印字典
给字典赋值并打印
# 运行结果
('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打印了字典,可能并没有如你所愿,因为它只打印了字典而没有实现转换的功能。但这也很正常,因为你并没有告诉计算机如何操作。不过,你已经很好地创建了一个字典,接下来则变得十分简单了。
二、允许用户输入并转换
现在,我们将程序改成允许用户输入的。
直接加个input()函数就行了:
Morse_message = "" # 给Morse_message赋值为空的
letters =input("Enter the words: \n") # 允许用户输入
print(letters) # 打印需要转换的明文
# 运行结果
Enter the words:
并没有发生什么事
并没有发生什么事
程序并没有发生什么事, 因为我们还没有输入指令。
再添加几行:
for letter in letters:
if letter not in letter_morse:
print("Couldn't find '" + letter +"'. ")
elif letter in letters:
Morse_message += letter_morse[letter] +' '
print(Morse_message)
# 运行结果
Enter the words:
hello
Okay:
.... . .-.. .-.. ---
可以看到,我们已经成功地完善了 “摩斯密码转换器” 。
不过你会发现,如果你输入大写字母,它会输出 Couldn't find 输入的大写字母。如何解决呢?只要在 “ letters =input("Enter the words: \n") ” 这行的末尾添上 “ .lower() ” 函数就大功告成了。
三、整合
完整的代码如下。
letter_morse = {"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":"--..",
" ":" "}
Morse_message = ""
letters =input("Enter the words: \n").lower()
for letter in letters:
if letter not in letter_morse:
print("Couldn't find '" + letter +"'. ")
elif letter in letters:
Morse_message += letter_morse[letter] + ' '
print("Okay: \n" + Morse_message)
希望对你有所帮助!