substring not found错误?

时间:2015-10-29 23:06:55

标签: python python-3.x

当我运行我的代码时,我得到错误子字符串未找到,我已经多次查看代码并且不明白它有什么问题以及如何修复它?三江源。

代码:

key = "cats"
tkey = ""
message = "Are awesome animals!"
alphabet = 'abcdefghijklmnopqrstuvwxyz'
for p,k in zip(message,key):
    char = alphabet.index(p)
    temp = alphabet.index(k)
    newchar = char + temp
    if newchar > 25:
        newchar -= 25
    newchar = alphabet[newchar]
    tkey.append(newchar)
print (newchar)

3 个答案:

答案 0 :(得分:2)

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

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

根据您的需要,您可能希望在测试前小写输入:

char = alphabet.index(p.lower())

或以小写整个消息。

答案 1 :(得分:1)

你没有允许大写字母。像这样更改循环字符串:

for p, k in zip(message.lower(), key):

你也会遇到tkey积累的问题:字符串没有附加方法。现在使用简单连接(您很快就会了解 join ):

    tkey += newchar
print (newchar)

最后,您必须添加一行或两行来处理空格;他们没有涵盖你当前的逻辑,他们也会得到&#34; not found&#34;错误。

答案 2 :(得分:1)

运行代码时,在for循环中以

开头
p = "A", k="c"

等等

char = alphabet.index(p)

无法在alphabet中找到与A匹配的任何内容。你无法优雅地失败,所以它会死亡。

您可以捕获错误并处理它,或者您可以标准化字符串的大小写。