如何将多个数字转换为单字母,从书中创建一个短语。

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

我接到的任务是解码一个数字清单。将原文,逐字逐句地转换成其ASCII数字等值。 例如:"T" → 84. 每一个数值都是通过这个过程驱动它们进行加密的。加密值=a X(原始值)+b。. 文件中的前两个整数是a和b的值,其余的整数代表加密后的文本。

例如,您的加密文件可能是这样的。

 -4, -63, -355, -191, -479, -507, -511, -467, -191, -547, -507, -531, -191, -479, -451, -535, -467, -191, -475, -507, -507, -463, -191, -539, -467, -451, -527, -479, -467, -519, -191, -539, -479, -483, -495, -467, -191, -355, -191, -451, -499, -191, -475, -507, -503, -467, -247

因此: a = -4b = -63. 在这之后的每一个整数都是一个加密的字母。

要想知道-355等于什么,你必须-> (355 - 63) 4 = 73 73在ASCII表中是 "I"

现在我只需要想出一个代码,把上面所有的数字,让它一个字母一个字母地吐出来,直到形成一个通道。

请帮助我

python numbers ascii
1个回答
0
投票

试试这个。

lst = [4, 63, 355, 191, 479, 507, 511, 467, 191, 547, 507, 531, 191, 479, 451, 535, 467, 191, 475, 507, 507, 463, 191, 539, 467, 451, 527, 479, 467, 519, 191, 539, 479, 483, 495, 467, 191, 355, 191, 451, 499, 191, 475, 507, 503, 467, 247]
a, b = lst[:2]
ans = ''.join([chr((abs(val) - b)//a) for val in lst[2:]])
print(ans)

输出:

I hope you have good weather while I am gone.

加密

enc = [(a * ord(char)) + b for char in ans]
#[355, 191, 479, 507, 511, 467, 191, 547, 507, 531, 191, 479, 451, 535, 467, 191, 475, 507, 507, 463, 191, 539, 467, 451, 527, 479, 467, 519, 191, 539, 479, 483, 495, 467, 191, 355, 191, 451, 499, 191, 475, 507, 503, 467, 247]
© www.soinside.com 2019 - 2024. All rights reserved.