Python 中的 for 循环出现问题 3:从 string1 获取元素在 string2 中的索引
Trouble with for loops in Python 3: getting the index in string2 of an element from string1
我正在尝试编写一个程序,它将获取一个文件并使用 Viginère 密码对其进行编码。我 运行 遇到了索引问题。我已经像这样定义了我的字符串 text
和 alphabet
:
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
。
我正在尝试编写一个程序,它将获取一个文件并使用 Viginère 密码对其进行编码。我 运行 遇到了索引问题。我已经像这样定义了我的字符串 text
和 alphabet
:
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
。