摩尔斯电码转换python编码_Morse Code 用Python做个摩斯密码转换器
摩斯密碼摩爾斯電碼(又譯為摩斯密碼,Morse code)是一種時(shí)通時(shí)斷的信號(hào)代碼,通過(guò)不同的排列順序來(lái)表達(dá)不同的英文字母、數(shù)字和標(biāo)點(diǎn)符號(hào),不同于現(xiàn)代只使用零和一兩種狀態(tài)的二進(jìn)制代碼,它的代碼包括五種: 點(diǎn)、劃、點(diǎn)和劃之間的停頓、每個(gè)詞之間中等的停頓以及句子之間長(zhǎng)的停頓。
可以參考以下表格:
abc@foxmailmail.com = .-? -...? -.-.? ?.--.-.? ?..-.----..---.-...-..? ?.-.-.-? ?-.-.-----? ?|? 看來(lái)摩斯密碼十分復(fù)雜
一、創(chuàng)建字典
首先,要將字母和摩斯密碼都儲(chǔ)存在一個(gè)字典里。
# 給字典賦值
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)? ? ? ? ? ? # 打印字典
給字典賦值并打印
# 運(yùn)行結(jié)果
('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', '--..')
當(dāng)然,Python打印了字典,可能并沒(méi)有如你所愿,因?yàn)樗淮蛴×俗值涠鴽](méi)有實(shí)現(xiàn)轉(zhuǎn)換的功能。但這也很正常,因?yàn)槟悴](méi)有告訴計(jì)算機(jī)如何操作。不過(guò),你已經(jīng)很好地創(chuàng)建了一個(gè)字典,接下來(lái)則變得十分簡(jiǎn)單了。
二、允許用戶(hù)輸入并轉(zhuǎn)換
現(xiàn)在,我們將程序改成允許用戶(hù)輸入的。
直接加個(gè)input()函數(shù)就行了:
Morse_message = ""? ? ? ? # 給Morse_message賦值為空的
letters =input("Enter the words: \n")? ? ? ? # 允許用戶(hù)輸入
print(letters)? ? ? ? # 打印需要轉(zhuǎn)換的明文
# 運(yùn)行結(jié)果
Enter the words:
并沒(méi)有發(fā)生什么事
并沒(méi)有發(fā)生什么事
程序并沒(méi)有發(fā)生什么事, 因?yàn)槲覀冞€沒(méi)有輸入指令。
再添加幾行:
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)
# 運(yùn)行結(jié)果
Enter the words:
hello
Okay:
.... . .-.. .-.. ---
可以看到,我們已經(jīng)成功地完善了 “摩斯密碼轉(zhuǎn)換器” 。
不過(guò)你會(huì)發(fā)現(xiàn),如果你輸入大寫(xiě)字母,它會(huì)輸出 Couldn't find 輸入的大寫(xiě)字母。如何解決呢?只要在 “?letters =input("Enter the words: \n") ” 這行的末尾添上 “ .lower() ” 函數(shù)就大功告成了。
三、整合
完整的代碼如下。
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)
希望對(duì)你有所幫助!
總結(jié)
以上是生活随笔為你收集整理的摩尔斯电码转换python编码_Morse Code 用Python做个摩斯密码转换器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据结构之二叉树:二叉查找树基本功能,P
- 下一篇: 【Pytorch神经网络实战案例】16