Python 中的 for 循环出现问题 3:从 string1 获取元素在 string2 中的索引

Trouble with for loops in Python 3: getting the index in string2 of an element from string1

我正在尝试编写一个程序,它将获取一个文件并使用 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 "substring not found"。我觉得这很奇怪,因为 text[i] 既是字母又是字符串。

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

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

只要加上 lower() 就可以了

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

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