即然要讲区别的话,那就先看看他们的概念叭。

先来看看index
python index()方法检测字符串中是否包含字符串str,如果指定beg(开始)和end(结束)范围,则检查是否包含在指定的范围内。如果包含字符串则返回开始的索引值,否则抛出异常。

接下来是find
python find()方法检测字符串中是否包含字符串str,如果指定beg(开始)和end(结束)范围,则检查是否包含在指定范围内,如果包含字符串则返回开始的索引值,否则返回-1

从概念上来看,两者的区别就在于字符串不包含字符串str的情况下的返回结果。但是毕竟都是敲代码的,来看看实际的吧!

eg:

a='c|c++|c#|python|javascript'
print(a.index('python'))
print(a.find('python'))

打印结果:
9
9

上面的例子是包含的情况下,返回的是字符串的第一个索引,下面看看不包含的情况下

a='c|c++|c#|python|javascript'
print(a.index('comeon'))

打印结果:

python df in python df index_find和index

a='c|c++|c#|python|javascript' print(a.find('comeon')) 打印结果:

-1

进阶版:带参数

round1

part1:参数<字符串的首字母索引

a='c|c++|c#|python|javascript'
print(a.index('python',8))
print(a.find('python',8))

打印结果:
9
9

part2:参数=字符串的首字母索引

a='c|c++|c#|python|javascript'
print(a.index('python',9))
print(a.find('python',9))

打印结果:
9
9

part3:参数>字符串的首字母索引

a='c|c++|c#|python|javascript'
print(a.index('python',11))

打印结果:

python df in python df index_字符串_02


哦,我的老天鹅啊,它报错了。找不到查找的字符串

a='c|c++|c#|python|javascript'
print(a.find('python',11))

返回结果:
-1

咦,它没有报错~~~~

已经看了上面的几个例子了,泥萌能猜的出来这个参数的意义嘛??

是的,没错,它就表示起始查找的位置,如果要查找的字符串的首字符大于或者等于参数的值,那么返回的结果就是该字符串首字符的索引,index和find都适用哦。如果小于的话,index会报错,find还是会返回-1哦!

round2

两个参数
从round1你已经知道了携带一个参数是起始位置,那么如果携带第二个参数你一定可以猜的出来叭~~·

没错,第二个参数就是结束位置。
升堂~~~~~,威武~~~~~~,上代码!!!!

a='c|c++|c#|python|javascript'
print(a.index('python',11,20))

python df in python df index_字符串_03


好叭,又是光荣牺牲了。。。。

再来!!!!

a='c|c++|c#|python|javascript'
print(a.index('python',8,20))

打印结果:

python df in python df index_python df in_04


再看一看

a='c|c++|c#|python|javascript'
print(a.index('python',9,14))

打印结果:

python df in python df index_python df in_05

惨了,又中招了,看来起始位置和终止位置之间的范围一定要大于字符串的索引范围啊!

那find呐?它这个小机灵鬼。

a='c|c++|c#|python|javascript'
print(a.find('python',11,20))

打印结果:
-1

a='c|c++|c#|python|javascript'
print(a.find('python',8,20))

打印结果:
9

a='c|c++|c#|python|javascript'
print(a.find('python',9,14))

打印结果:
-1

咦,果然机灵~~~

害,一步一步的走了这么多路,是时候该总结一下了。

index和find的区别:
1.如果找不到字符串,index报错,find返回-1,如果可以找到,两者都返回字符串首字符的索引值
2.两个参数分别 是起始位置和终止位置,起始位置和终止位置的索引范围必须大于字符串的索引范围,不能等于。否则index报错,find返回-1。

在快要离开的时候给你们个大料,来来来,上源码。

python df in python df index_c++_06

python df in python df index_find和index_07