下午好,
(我是初学者程序员)
我在Python中遇到了一个小问题。我正在尝试写一个程序与图形用户界面,有4个用户输入。第一个输入是key a,第二个是key b,第三个是text to encrypt,for是text to decrypt。用于加密程序的是使用Affine Cipher。
我将在示例中向您展示我的问题:用户输入key a作为1,key b作为3,text for encrypt输入字母D。在控制台上的程序输出将是字母G,这很好,但当用户输入更多的字母,如DE或一些单词,将有一个错误,说'DE' is not in list,如果我试图把用户输入到列表,它会说同样的事情,但这次,错误将是说'D' 'E' is not in list,甚至不能加密只有一个字母。
所以问题是,程序可以将用户输入的一个字母与字母表进行比较,并获得这个字母的索引并对其进行加密,但当有更多的字母时,它就不能。谢谢你的帮助!
def Encrypt_Input (input,key_a,key_b):
input = self.User_Input.upper()
No_Diacritic = unidecode.unidecode(input)
alphabet = list(string.ascii_uppercase)
input_index = alphabet.index(No_Diacritic)
Encryption = ((int(self.key_a)*input_index)+int(self.key_b))%26
Encrypted = alphabet[Encyption]
print(Encrypted)
return Encrypted发布于 2020-10-09 19:54:13
您可以使用一个包装器函数逐个字母地迭代文本(通过使用for循环),对于每个字母,它将使用您的函数并连接输出。
https://stackoverflow.com/questions/64279433
复制相似问题