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)