实现摩斯明码翻译器的 Python 程序

'''
VARIABLE KEY
'cipher' -> '存储英文字符串的摩斯翻译模式'
'decipher' -> '存储摩斯字符串的英文翻译模式'
'citext' -> '存储单个字符的摩斯明码'
'i' -> '计算摩斯字符之间的空格'
'message' -> '存储要编码或解码的字符串
'''

示意摩斯明码图的字典

MORSE_CODE_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':'--..',                '1':'.----', '2':'..---', '3':'...--',                '4':'....-', '5':'.....', '6':'-....',                '7':'--...', '8':'---..', '9':'----.',                '0':'-----', ', ':'--..--', '.':'.-.-.-',                '?':'..--..', '/':'-..-.', '-':'-....-',                '(':'-.--.', ')':'-.--.-'}

依据摩斯明码图对字符串进行加密的函数

def encrypt(message):

cipher = ''for letter in message:    if letter != ' ':        # 查字典并增加对应的摩斯明码        # 用空格分隔不同字符的摩斯明码        cipher += MORSE_CODE_DICT[letter] + ' '    else:        # 1个空格示意不同的字符        # 2示意不同的词        cipher += ' 'return cipher

将字符串从摩斯解密为英文的函数

def decrypt(message):

# 在开端增加额定空间以拜访最初一个摩斯明码message += ' 'decipher = ''citext = ''for letter in message:    # 查看空间    if (letter != ' '):        # 计数器来跟踪空间        i = 0        # [贝宝](https://www.gendan5.com/wallet/PayPal.html)在空格的状况下        citext += letter    # 在空间的状况下    else:        # 如果 i = 1 示意一个新字符        i += 1        # 如果 i = 2 示意一个新词        if i == 2 :             # 增加空格来分隔单词            decipher += ' '        else:            # 应用它们的值拜访密钥(加密的反向)            decipher += list(MORSE_CODE_DICT.keys())[list(MORSE_CODE_DICT            .values()).index(citext)]            citext = ''return decipher

硬编码驱动函数来运行程序

def main():

message = "JUEJIN-HAIYONG"result = encrypt(message.upper())print (result)message = ".--- ..- . .--- .. -. -....- .... .- .. -.-- --- -. --."result = decrypt(message)print (result)message = "I LOVE YOU"result = encrypt(message.upper())print (result)message = "..  .-.. --- ...- .  -.-- --- ..-"result = decrypt(message)print (result)

执行主函数

if name == '__main__':

main()

输入:
.--- ..- . .--- .. -. -....- .... .- .. -.-- --- -. --.
JUEJIN-HAIYONG
.. .-.. --- ...- . -.-- --- ..-
I LOVE YOU