我试图检查是否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
谢谢
答案 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