您当前的位置:首页 > 计算机 > 编程开发 > Python

摩尔斯电码转换python编码_Morse Code 用Python做个摩斯密码转换器

时间:07-16来源:作者:点击数:

摩斯密码摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号,不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种: 点、划、点和划之间的停顿、每个词之间中等的停顿以及句子之间长的停顿。

可以参考以下表格:

abc@foxmailmail.com = .-  -...  -.-.   .--.-.   ..-.----..---.-...-..   .-.-.-   -.-.-----   |  看来摩斯密码十分复杂

一、创建字典

首先,要将字母和摩斯密码都储存在一个字典里。

# 给字典赋值

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)            # 打印字典

给字典赋值并打印

当然,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)

# 运行结果

可以看到,我们已经成功地完善了 “摩斯密码转换器” 。

不过你会发现,如果你输入大写字母,它会输出 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)

希望对你有所帮助!

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门