将代码转换为python中的列表理解。

问题描述 投票:-2回答:1

密码是一种语言的秘密代码。在本案例研究中,我们将探讨一种密码,据当代希腊历史学家报道,凯撒大帝在战争期间用它向将军们发送秘密信息。

凯撒密码将信息中的每一个字母转移到字母表中距离原字母固定距离的另一个字母上。如果我们的加密密钥是1,我们会把h移到下一个字母i上,i移到下一个字母j上,以此类推。如果我们到达字母表的末端,对我们来说是空格字符,我们只需循环回到a。为了解码信息,我们进行类似的移动,只是我们在字母表中向后移动相同的步数。

练习。

在这个作业的五个练习中,我们将创建我们自己的凯撒密码, 以及这个密码的信息解码器。

***p1 : 我们将定义密码中使用的字母表.示例代码导入的字符串库已经导入。创建一个名为alphabet的字符串,由空格字符(' ')和小写字母(连在一起)组成。注意,我们在这个练习中只使用小写字母。

Step2:我们将定义一个字典,指定字母表中每个字符的索引.注意,字母表与练习1中定义的一样。创建一个字典,其键由字母表中的字符组成,值由0到26的数字组成。将其存储为position。

第三步:我们将用凯撒密码对信息进行编码。注意字母和位置是在练习1和2中定义的。使用 positions 来创建一个基于 message 的编码信息,其中信息中的每个字符都被向前移动了 1 个位置,正如 positions 所定义的那样.注意,你可以使用 result % 27 来确保结果保持在 0-26 范围内.将其存储为 encoded_message。

什么是 encoded_message?(用列表理解写的代码) ***

我已经写了步骤1和步骤2的代码,下面是我的步骤3的代码,我想编辑 "encoded_message "来列出理解。下面是我的步骤3的代码,我想编辑 "encoded_message "来列出理解。

message = "hi my name is caesar"
encoded_message = ''   
for c in message:
    for key, values in positions.items(): 
        if values == (positions[c] + 1) % 27:  
            encoded_message += key 
print(encoded_message)

我的代码目前运行良好。但我需要把整个代码写在一行,然后把 encoded_message 的代码发送出去。

python list-comprehension data-science
1个回答
1
投票

如果你只是想对一条信息进行编码,那么可以试试这个。这是ceaser密码,如果你想知道其他技术,请在评论中告诉我。

def encrypt(text, s):
    result = ""

    # traverse text
    for i in range(len(text)):
        char = text[i]

        # Encrypt uppercase characters
        if (char.isupper()):
            result += chr((ord(char) + s - 65) % 26 + 65)

            # Encrypt lowercase characters
        else:
            result += chr((ord(char) + s - 97) % 26 + 97)

    return result


# check the above function
text = "CEASER CIPHER DEMO"
s = 4
print("Text  : " + text)
print("Shift : " + str(s))
print("Cipher: " + encrypt(text, s))
© www.soinside.com 2019 - 2024. All rights reserved.