find()方法
语法
str1.find(str2, beg=0, end=len(string))
作用
检测 str2 是否包含在字符串str1中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1。
index()方法
语法
str1.index(str2, beg=0, end=len(str1))
作用
检测 str2 是否包含在字符串str1中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则会出现异常报错。
两个方法的对比
1、当在字符串str1中的索引范围内包含了字符串str2时,find()方法与index()方法都会返回字符串str2在字符串str1中的第一个索引位置;
2、当在字符串str1中的索引范围内不包含字符串str2时,find()方法会返回一个-1值,而index()方法则会报错,错误类型为:ValueError: substring not found。
示例:
print('aabbccabc'.find('ab')) # 从下标0开始查找
>> 1
print('aabbccabc'.find('ab', 3, len('aabbccabc'))) # 从下标3开始查找
>> 6
print('aabbccabc'.find('abd'))
>> -1
print('aabbccabc'.index('ab')) # 从下标0开始查找
>> 1
print('aabbccabc'.index('ab', 3, len('aabbccabc'))) # 从下标3开始查找
>> 6
print('aabbccabc'.index('abd'))
>> ValueError: substring not found
总结:在使用index()方法时,要注意字符串str1中是否包含字符串str2,如果在不确定时,建议使用find()方法。