如何正确使用python中的反向函数进行凯撒密码?

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

我目前正在使用python进行凯撒密码。我想给你的是,我该如何使用反转功能?

import string

text = input("Your message: ")    
print(text)    
alphabet = list(string.ascii_uppercase)
result = ''

for i in list(text.upper()):    
    if i in alphabet:      
        result += alphabet[-alphabet.index(i)+25] 
    else:  
        result += i

print("Your encoded message is: ",result)
reversed_result = reversed(result)
print("Your decoded message is: ", reversed_result)
python function caesar-cipher
1个回答
0
投票

reversed()函数返回一个迭代器。您需要遍历此对象以获取其内容,或将其转换为列表。

您还可以使用切片来反转字符串:

reversed()

注意,这不会反转编码-它只会反转字符串中的字母。您必须编写一个解码功能来对某些内容进行反向编码。由于您的凯撒密码的编码与解码相同,因此您可以执行以下操作:

>>> 'test'[::-1]
'tset'

输出:

import string
alphabet = list(string.ascii_uppercase)


def encode(text):
    result = ''
    for i in list(text.upper()):    
        if i in alphabet:      
            result += alphabet[-alphabet.index(i)+25] 
        else:  
            result += i
    return result

text = input("Your message: ")    
print(text)    


print("Your encoded message is: ", encode(text))
print("Your decoded message is: ", encode(encode(text)))
© www.soinside.com 2019 - 2024. All rights reserved.