python中str的find()
今天学习语法的时候发现字符串自带函数find和操作符in功能十分近似,几乎一模一样
if
'a'
in
name:
print
'Yes, it contains the string "a"'
if
name.find(
'war'
) !=
-1
:
print
'Yes, it contains the string "war"'
我就想,不可能出现完全一样功能的函数吧,要不意义何在?果不其然,经查证find()是返回查询字符串第一个字符在被查询字符串中第一次出现的位置
举个栗子:
按照一般理解:abc.find('')返回的要么是0要么是1
abc = "qwertyuiopqwertyuiop"
if abc.find('yui'):#判断是否包含yui字符串
print("Yes")
else:
print("No")
结果:
一切正常
但如果:
abc = "qwertyuiopqwertyuiop"
if abc.find('abc'):#判断是否包含yui字符串
print("Yes")
else:
print("No")
你会发现结果还是:
这是因为find()若找不到对应字符串则返回-1
正确的判断语句应该是:
if abc.find("abc") != -1
...
...
而且find()若找到对应字符串返回的也不是1,那是什么呢? 之前有提到,返回的是查询字符串在被查询字符串中第一次出现的位置
举个栗子:
abc = 'qwertyuiopqwertyuiop'
print(abc.find('yui'))
结果:
打印的是y在字符串‘qwertyuiopqwertyuiop’中第一次出现的位置,注意python从0开始