1

我正在尝试编写一个程序,该程序将获取一个文件并使用 Viginère 密码对其进行编码。我遇到了一些索引问题。我已经定义了我的字符串textalphabet如下所示:

import string

alphabet = string.ascii_lowercase
ciphertext = open("black_hole.txt","r")
ciphertext = ciphertext.read()
text = ""

for i in range(len(ciphertext)):
    if ciphertext[i].isalpha() == True:
        text = text + ciphertext[i]

当我尝试编写这个 for 循环时,我的麻烦就开始了:

for i in range(len(text)):
    print(alphabet.index(text[i]))

我得到 ValueError“找不到子字符串”。我觉得这很奇怪,因为 text[i] 总是一个字母和一个字符串。

如果我没有足够清楚地提出这个问题,请告诉我!

4

2 回答 2

1
for i in range(len(text)):
    print(alphabet.index(text.lower()[i]))

只需添加 lower() 即可

于 2015-06-03T17:58:13.560 回答
0

正如凯文在评论中所说,您可能缺少大写字母。

您可以使用alphabet[ord(text[i].lower()) - ord('a')]而不是index.

于 2015-06-03T18:02:21.213 回答