1、问题概述?
在python脚本中使用了index进行字符串比对的时候,出现了如下问题:
ValueError(substring not found),案例如下:
#判断字符串是否存在
if __name__ == '__main__':
str1="list index out of a index range"
str2="abc"
#判断str2在str1中是否存在
if(str1.index(str2)>-1):
print("============存在=============")
index当字符串不存在的时候就抛出异常
2、解决办法
2.1、使用in 或者not in
#判断字符串是否存在
if __name__ == '__main__':
str1="list index out of range"
str2="index"
#判断str2在str1中是否存在
if str2 in str1:
print("====存在====")
if str2 not in str1:
print("====不存在====")
2.2、find与rfind的用法
find与rfind都是查找字符串第一次出现的位置并返回,找不到不抛出异常,不同之处在于。
假如字符串长度为30
find:从左边开始找,从索引0开始找到30,返回第一次出现字符串的位置。
rfind:从右边开始找,从索引30开始找到0,返回第一次出现字符串的位置。
#判断字符串是否存在
if __name__ == '__main__':
str1="list index out of a index range"
str2="index"
#判断str2在str1中是否存在
if(str1.rfind(str2)>-1):
print(str1.rfind(str2)) #返回值20
if (str1.find(str2) > -1):
print(str1.find(str2)) #返回值5