如题所述
Python的find函数多用在字符串的处理上,也是Python计算机二级的小考点。
定义:Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
语法
str.find(str, beg=0, end=len(string))
参数
str---a指定检索的字符串
beg---开始检索,默认为0
end---结束检索,默认为字符串的长度
返回值
如果包含子字符串返回开始的索引值,否则返回-1。
二、find函数的详细函数使用解释
第一个例子(tips:可以复制代码到idle里边,然后自己运行着看,这个看不懂可以再看看第二个例子,结合着理解)
str = "abcdefa"
print(str.find("a")) # 从下标0开始,查找在字符串里第一个出现的子串,返回结果
print(str.find("a",1)) # 从下标1开始,查找在字符串里第一个出现的子串:返回结果6
print(str.find("7"))# 查找不到返回-1
第二个例子(tips:可以把代码沾到idle中,运行然后对照着我的下边的解答看)
str = "hello Best wishes to you";
str1 = "to";
print(str.find(str1))
print(str.find(str1,10))
print(str.find(str1,18))
print(str.find(str1,19))
print(str.find(str1,17,19))
print(str.find(str1,17,20))
print(str.find(str1,18,20))
第一个从字符h(下标为0)开始数起,一直到检索到t停止,一直检索过来,是18个字符串
所以首先,第一个print结果为18
第二个从第10个字符串开始数起,只要后面有to这个字符,那么就返回开始的索引值,也就是18
第三个从第18个字符串开始数起,刚好落在t字符串上,从t开始检索,那往后开始检索肯定没问题,继续返回18
第四个从第19个字符串开始数起,也就是to的o后面的空格,从空格往后检索,那么就没有想要的内容了,所以返回-1
第五个print里边我添加了end的参数,因为直接定位在19,所以相当于o检索不上,所以输出-1
第六个print我更改end为20,这时候就可以正常输出了
第七个print里边我把17改为18,19改为20,依然可以输出,理由同上,举6反1。
定义:Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
语法
str.find(str, beg=0, end=len(string))
参数
str---a指定检索的字符串
beg---开始检索,默认为0
end---结束检索,默认为字符串的长度
返回值
如果包含子字符串返回开始的索引值,否则返回-1。
二、find函数的详细函数使用解释
第一个例子(tips:可以复制代码到idle里边,然后自己运行着看,这个看不懂可以再看看第二个例子,结合着理解)
str = "abcdefa"
print(str.find("a")) # 从下标0开始,查找在字符串里第一个出现的子串,返回结果
print(str.find("a",1)) # 从下标1开始,查找在字符串里第一个出现的子串:返回结果6
print(str.find("7"))# 查找不到返回-1
第二个例子(tips:可以把代码沾到idle中,运行然后对照着我的下边的解答看)
str = "hello Best wishes to you";
str1 = "to";
print(str.find(str1))
print(str.find(str1,10))
print(str.find(str1,18))
print(str.find(str1,19))
print(str.find(str1,17,19))
print(str.find(str1,17,20))
print(str.find(str1,18,20))
第一个从字符h(下标为0)开始数起,一直到检索到t停止,一直检索过来,是18个字符串
所以首先,第一个print结果为18
第二个从第10个字符串开始数起,只要后面有to这个字符,那么就返回开始的索引值,也就是18
第三个从第18个字符串开始数起,刚好落在t字符串上,从t开始检索,那往后开始检索肯定没问题,继续返回18
第四个从第19个字符串开始数起,也就是to的o后面的空格,从空格往后检索,那么就没有想要的内容了,所以返回-1
第五个print里边我添加了end的参数,因为直接定位在19,所以相当于o检索不上,所以输出-1
第六个print我更改end为20,这时候就可以正常输出了
第七个print里边我把17改为18,19改为20,依然可以输出,理由同上,举6反1。
温馨提示:答案为网友推荐,仅供参考