python中字符串内建函数之find / rfind 、index / rindex的区别

一、find(str, beg, end)/index(str, beg, end)

从左到右查找某个符号在字符串中第一次出现的位置返回正向下标(从字符串左边开始查询字符串匹配到的第一个索引)

二、rfind(str, beg, end)/rindex(str, beg, end)

从右到左查找某个符号第一次出现的位置返回正向下标(从字符串右边开始查询字符串匹配到的第一个索引) ----> 也可以说从左到右最后一次出现的位置

find(str, beg, end)、index(str, beg, end)、rfind(str, beg, end)、rindex(str, beg, end)这四个方法均可检测字符串中是否包含子字符串 str ,如果指定 beg 和 end 范围,则检查是否包含在指定范围内。beg – 开始索引,默认为 0;end – 结束索引,默认为字符串的长度find、rfind找不到元素返回-1 而 index、rindex找不到元素会报错(异常)

下面用代码来感受一下初级用法:
str_6 = 'abcaa'
print(str_6.find('a'))  # 0
print(str_6.rfind('a'))  # 4
print(str_6.find('1'))  # -1
print(str_6.rfind('1'))  # -1

print(str_6.index('a'))  # 0
print(str_6.rindex('a'))  # 4
# print(str_6.index('1'))  # ValueError: substring not found
# print(str_6.rindex('1'))  # ValueError: substring not found
指定下标的用法:从下标beg开始找,到下标end结束
str_6 = 'abcaa'
# 从下标2开始到下标5结束(结束参数end没写默认为字符串长度5),从左到右找 a 第一次出现的下标,
print(str_6.find('a', 2))  # 3
print(str_6.index('a', 2))  # 3
# 从下标1开始到下标2结束,从左到右找 a 第一次出现的位置,在此区间并没有找到a,
print(str_6.find('a', 1, 2))  # -1
print(str_6.index('a', 1, 2))  # ValueError: substring not found

print(str_6.rfind('a', 2))  # 4
# 从右往左,下标在0~2之间第一出现a的下标
print(str_6.rindex('a', 0, 2))  # 0

你可能感兴趣的:(python,开发语言,pycharm)