python中index()与find()的区别
起因:在排查错误时定位在判断语句这⼀⾏:if testlist.index('T'):
报错:ValueError: substring not found。原来是index()和find()没区分清楚。find()查找失败会返回-1,不会影响程序运⾏。⼀般⽤find!=-1或者find>-1来作为判断条件。
1.index描述
Python index() ⽅法检测字符串中是否包含⼦字符串 str ,如果指定 beg(开始)和 end(结束)范围,则检查是否包含在指定范围内,该⽅法与 python find()⽅法⼀样,只不过如果str不在 string中会报⼀个异常。
语法
index()⽅法语法:
str.index(str, beg=0,end=len(string))
参数美丽的夕阳
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
返回值
如果包含⼦字符串返回开始的索引值,否则抛出异常。
实例
以下实例展⽰了index()⽅法的实例:
采桑子纳兰性德
#!/usr/bin/python
str1 = "this is wow";
str2 = "exam";
print str1.index(str2);
如何低碳生活
校园笑话
print str1.index(str2, 10);
print str1.index(str2, 40);
以上实例输出结果如下:
15
c6h8o7
前车之鉴的意思15
Traceback (most recent call last):
File "test.py", line 8, in
print str1.index(str2, 40);
ValueError: substring not found
shell returned 1
2.find描述
磁场Python find() ⽅法检测字符串中是否包含⼦字符串 str ,如果指定 beg(开始)和 end(结束)范围,则检查是否包含在指定范围内,如果包含⼦字符串返回开始的索引值,否则返回-1。
语法
find()⽅法语法:
str.find(str, beg=0,end=len(string))
参数
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
返回值
清蒸肉末
如果包含⼦字符串返回开始的索引值,否则返回-1。