Python 未找到子字符串错误?

Python 未找到子字符串错误?,python,python-3.x,Python,Python 3.x,当我运行我的代码时,我没有找到错误子字符串,我已经检查了代码多次,不明白它有什么问题以及如何修复它?谢谢 代码: 你没有考虑到大写字母。按如下方式更改循环字符串: for p, k in zip(message.lower(), key): tkey累积也会遇到问题:字符串没有append方法。现在使用简单连接(您很快就会了解join): 最后,您必须添加一两行来处理空格;您当前的逻辑中没有包含它们,它们也会出现“找不到”错误。问题是消息的第一个字母是A,它不在字母表中: >>&g

当我运行我的代码时,我没有找到错误子字符串,我已经检查了代码多次,不明白它有什么问题以及如何修复它?谢谢

代码:


你没有考虑到大写字母。按如下方式更改循环字符串:

for p, k in zip(message.lower(), key):
tkey累积也会遇到问题:字符串没有append方法。现在使用简单连接(您很快就会了解join):


最后,您必须添加一两行来处理空格;您当前的逻辑中没有包含它们,它们也会出现“找不到”错误。

问题是
消息的第一个字母是
A
,它不在字母表中:

>>> alphabet = 'abcdefghijklmnopqrstuvwxyz'
>>> alphabet.index('A')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

或者将前面的整个消息小写。

运行代码时,在开始的
for
循环中

p = "A", k="c"
诸如此类

char = alphabet.index(p)
字母表
中找不到与
A
匹配的任何内容。你没有办法优雅地失败,所以它就死了


您可以捕获错误并进行处理,也可以标准化字符串的大小写。

字母表中没有大写字母。使用
alphabet.index(p.lower())
alphabet.index(k.lower())
Facepalm,真不敢相信我没有注意到这么简单的事情。谢谢
char = alphabet.index(p.lower())
p = "A", k="c"
char = alphabet.index(p)