将字母转换为数值

Conversion of alphabet into numerical values

我正在尝试解码 python 中的 Vigenere 密码,知道密文和明文

我有一串文本 'SDFJNKSJDFOSNFDF'。 我想将每个字母转换为数字,以便能够解码文本,即 A 到 1,B 到 2...

我的想法是用 ascii 转换它,检查大写字母对应的是什么意味着我可以扣除这个,我没有无效的示例代码,我已经写了一些细节这有望让我的想法更容易理解:

我的字符串如下所示:

string = 'SDFJNKSJDFOSN'

然而,当我使用 Vigenere 密码时,我知道我的块长度是 6,所以我也有

blocks = ['SDFJNK', 'SJDFOS', 'N']

我不知道先转换为数字再分解成块还是反过来更容易?我的想法是使用 ascii 文本,例如,如果在 ascii D = 35 中,因为它包含多个字符,我可以用它来重写所有数字,无论它们的 ascii 是什么 - 31 所以 D = 4 和所有其他字母都会效仿

抱歉缺少我的意思的书面示例,但这里的其他问题有太多变化我不知道从哪里开始,理想情况下输出看起来像这样:

output:
['19,4,6,10,14,11','19,10,4,6,15,19','15']

output:
['19,4,6,10,14,11,19,10,4,6,15,19,15']

使用ord(character)获取每个字母的值

string = 'SDFJNKSJDFOSN'
count = 0
for letter in string:
    print(f'{ord(letter)=}')

print('\nOr outputs as a list\n')

letter_codes = []
for letter in string:
    letter_codes.append(ord(letter))
print(letter_codes)

输出

ord(letter)=83
ord(letter)=68
ord(letter)=70
ord(letter)=74
ord(letter)=78
ord(letter)=75
ord(letter)=83
ord(letter)=74
ord(letter)=68
ord(letter)=70
ord(letter)=79
ord(letter)=83
ord(letter)=78

Or outputs as a list

[83, 68, 70, 74, 78, 75, 83, 74, 68, 70, 79, 83