python morse莫斯密码加解密

本文介绍了一个使用Python实现的摩尔斯电码转换器。该程序包含两个主要功能:将普通文本加密为摩尔斯电码以及将摩尔斯电码解密回普通文本。通过定义一个包含摩尔斯电码映射的字典来实现这一转换。
# Python program to implement Morse Code Translator
# Dictionary representing the morse code chart
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:
            cipher += ' '
    return cipher


def decrypt(message):

    message += ' '

    decipher = ''
    citext = ''
    for letter in message:
        if (letter != ' '):
            i = 0
            citext += letter
        else:
            i += 1
            if i == 2 :
                decipher += ' '
            else:
                decipher += list(MORSE_CODE_DICT.keys())[list(MORSE_CODE_DICT
                .values()).index(citext)]
                citext = ''

    return decipher

def main():
    message = "Morse code here"
    result = encrypt(message.upper())
    print (result)

    message = result
    result = decrypt(message)
    print (result)

if __name__ == '__main__':
    main()
摩尔斯电码(Morse Code)是一种用于传输电报的编码方式,它是由美国画家塞缪尔·F·B·摩尔斯于1835年发明的。摩尔斯电码的特点是简单易学,适用于不同语言,因此在无线电通讯和求救信号等方面得到了广泛的应用。 下面是一个简单的 Python 实现,可以用来加密和解密摩尔斯电码。 加密摩尔斯电码: ``` 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(message): cipher = '' for letter in message: if letter != ' ': cipher += MORSE_CODE_DICT[letter] + ' ' else: cipher += ' ' return cipher message = input("请输入要加密的信息:") result = encrypt_message(message.upper()) print("加密后的结果为:", result) ``` 解密摩尔斯电码: ``` 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 decrypt_message(message): message += ' ' decipher = '' citext = '' for letter in message: if (letter != '-' and letter != '.' and letter !=' '): return "无效的输入" if letter == ' ': decipher += MORSE_CODE_DICT[citext] citext = '' else: citext += letter return decipher message = input("请输入要解密的信息:") result = decrypt_message(message) print("解密后的结果为:", result) ``` 希望能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值