11行Python代码实现解密摩斯密码

yizhihongxing

下面是详细的攻略:

1.了解摩斯密码

摩斯密码是一种用点(·)和线(–)作为符号,用于传输字母、数字和标点符号的电报代码。点和线的不同排列组合代表不同的字符。例如,字母A的摩斯码是·—,字母B的摩斯码是—···。

2.理解代码思路

这段Python代码使用了一个字典来存储每个字符所对应的摩斯码,然后使用字符串处理方法join()和split()来实现编码和解码功能。具体而言,编码功能中,将用户输入的字符串中的每个字符在字典中查找对应的摩斯码,并将这些摩斯码使用空格分开连接起来形成一个编码字符串;解码功能中,将用户输入的摩斯码字符串按空格分割成不同的摩斯码,再在字典中查找对应的字符,并将这些字符拼接起来形成解码结果。

3.完整代码

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


if __name__ == '__main__':
    result = encrypt('HELLO WORLD')
    print(result)
    result = decrypt('.... . .-.. .-.. ---   .-- --- .-. .-.. -.. ')
    print(result)

4.示例

示例1

输入:HELLO WORLD

输出:.... . .-.. .-.. --- .-- --- .-. .-.. -..

解释:将字符串HELLO WORLD使用字典中的摩斯码进行编码,并将编码结果用空格分开连接起来。

示例2

输入:.... . .-.. .-.. --- .-- --- .-. .-.. -..

输出:HELLO WORLD

解释:将给定的摩斯码字符串按空格分开,对每个摩斯码在字典中查找对应的字符,并将这些字符拼接起来即可得到解码结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:11行Python代码实现解密摩斯密码 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 浅谈Pytorch中的自动求导函数backward()所需参数的含义

    让我为大家详细讲一下PyTorch中的自动求导函数backward()所需参数的含义。 简介 在PyTorch中,自动求导是非常重要的特性。通过它,我们可以轻松地计算梯度并优化模型。而自动求导函数backward()是其中的核心函数之一。 backward()函数介绍 简述 backward()是计算当前张量在一个标量上的梯度。通常,在计算loss函数的梯度…

    python 2023年5月19日
    00
  • python查看自己安装的所有库并导出的命令

    要查看Python安装了哪些库,可以使用以下命令: pip freeze > requirements.txt 这个命令会将已经安装的Python库列表导出到当前目录下的requirements.txt文件中,该文件包含了所有已经安装的Python库及其版本号。 如果只想查看已安装的Python库列表而不生成文件,可以直接在命令行窗口中输入以下命令: …

    python 2023年5月18日
    00
  • 如何对csv文件数据分组,并用pyecharts展示

    下面是详细讲解“如何对CSV文件数据分组, 并用pyecharts展示”的完整攻略。 1. 加载csv文件 首先,我们需要读取CSV文件中的数据。一般使用Python内置的CSV模块来读写CSV文件,代码如下: import csv with open(‘data.csv’, ‘r’) as f: reader = csv.reader(f) data = …

    python 2023年6月3日
    00
  • Python字符串编码转换 encode()和decode()方法详细说明

    Python 是一种多语言支持的编程语言,因此要正确地处理多种语言字符集,不可避免地需要使用字符串编码转换。在 Python 中,字符串的编码默认是 Unicode 编码,因此需要使用 encode() 方法将其转换为其他编码,如gbk、utf-8等;同时,decode() 方法将其他编码格式的字符串转换为 Unicode 编码。 1. encode() 方…

    python 2023年5月20日
    00
  • python字符串大小写转换的三种方法

    下面是关于“python字符串大小写转换的三种方法”的完整攻略: 方法1:upper()和lower() python自带了upper()和lower()方法可以实现字符串的大小写转换。其中,upper()将所有字母转换为大写字母,lower()将所有字母转换为小写字母。 下面是示例代码: str1 = "Hello, World!" p…

    python 2023年6月5日
    00
  • Python实现检测文件MD5值的方法示例

    Python实现检测文件MD5值的方法示例 在计算机领域中,一般使用MD5算法来验证文件的完整性。Python提供了许多计算MD5值的库,本文将介绍如何使用Python计算文件的MD5值并验证文件的完整性。 什么是MD5算法 MD5(Message Digest Algorithm 5)是一种用于信息摘要算法的加密哈希函数。它将输入的任意长度的消息压缩成一串…

    python 2023年6月3日
    00
  • 如何在Python中更新Microsoft SQL Server数据库中的数据?

    以下是如何在Python中更新Microsoft SQL Server数据库中的数据的完整使用攻略,包括连接Microsoft SQL Server数据库、执行更新语句等步骤。同时,提供了两个示例以便更好理解如何在Python中更新Microsoft SQL Server数据库中的数据。 步骤1:连接Microsoft SQL Server数据库 在Pyth…

    python 2023年5月12日
    00
  • python中常见的5种框架解读

    下面是 Python 中常见的 5 种框架的详细解读。 1. Django Django 是一个由 Python 写成的高级 Web 开发框架,它的核心理念是:”Don’t Repeat Yourself”(DRY)。 Django 已经集成了许多常用的功能模块,如:数据库 ORM(Object-Relational Mapping)映射关系、路由系统、表单…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部