ValueError:找不到子字符串

时间:2018-04-28 15:42:42

标签: python-3.x valueerror

我试图检查是否lower[lower.index(j)+shift]>26,但它返回了

  

ValueError:在lower.index(j)+ shift> 26

中找不到子字符串

我的代码:

def build_shift_dict(self, shift):
    lower=string.ascii_lowercase
    upper=string.ascii_uppercase
    d={}
    for j in self.message_text:
        if lower.index(j)+shift>26: # or if lower[lower.index(j)+shift]>26:
            print('something')
        if j.islower():
            d[j]=lower[lower.index(j)+shift]
        else:
            d[j]=upper[upper.index(j)+shift]
    return d

谢谢

1 个答案:

答案 0 :(得分:0)

如果在iterable中找不到'obj',则iterable.index(obj)方法将引发Value错误。

self.message_text中的某些内容不属于string.ascii_lowercase

尝试在try-except子句中包装该行。

try:
    lower.index(j)
except ValueError:
    print('{} not found in the search space.'format(j))
    continue
相关问题