使用字典的python密码编码器

2024-10-02 18:16:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在python上练习使用字典和函数。我试图编写一个程序,用加密的字母表加密一个简单的短语或句子:

Original alphabet: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Encrypted alphabet: TDLOFAGJKRICVPWUXYBEZQSNMH. 

用户需要输入要加密的短语或句子,以便它可以包含大写或小写字母、空格、逗号和句点。但是,输出只能是带空格和标点符号的大写字母。在

^{pr2}$

Tags: 函数用户程序字典字母表句子encrypted空格
2条回答

有时候请求原谅比请求允许好。您可以删除一半的key:value并将其替换为上部结构(),这样小写字母就变成了大写字母。如果调用dict()。如果密码.get(character)返回None。在

def get_chiper(plaintext):
    cipher = {"A": "T", "B": "D", "C": "L", "D": "O", "E": "F",
              "F": "A", "G": "G", "H": "J", "I": "K", "J": "R",
              "K": "I", "L": "C", "M": "V", "N": "P", "O": "W",
              "P": "U", "Q": "X", "R": "Y", "S": "B", "T": "E",
              "U": "Z", "V": "Q", "W": "S", "X": "N", "Y": "M",
              "Z": "H"}
    return "".join(cipher.get(character.upper()) or character
               for character in plaintext)

通过颠倒dict,可以用相同的功能完成完整的编码和解码

^{pr2}$

您应该排除那些带有未知符号的情况,这可以通过以下方式完成:

    cipher ={"A":"T","a":"T","B":"D","b":"D","C":"L","c":"L","D":"O","d":"O","E":"F","e":"F","F":"A","f":"A","G":"G","g":"G","H":"J","h":"J","I":"K","i":"K","J":"R","j":"R","K":"I","k":"I","L":"C","l":"C","M":"V","m":"V","N":"P","n":"P","O":"W","o":"W","P":"U","p":"U","Q":"X","q":"X","R":"Y","r":"Y","S":"B","s":"B","T":"E","t":"E","U":"Z","u":"Z","V":"Q","v":"Q","W":"S","w":"S","X":"N","x":"N","Y":"M","y":"M","Z":"H","z":"H"}
    def encode(words, cipher):
        result = ''
        for letter in words:
            if letter in cipher:
                result = result + cipher[letter]
            else:
                result = result + letter
        return result
phrase = raw_input('Please enter your phrase: ')
print encode(phrase, cipher)

相关问题 更多 >