关于Python:如何判断一个字符串是否包含在另个字符串中

how to find whether a string is contained in another string

1
2
a='1234;5'
print a.index('s')

错误是:

1
2
3
4
5
>"D:\Python25\pythonw.exe" "D:\zjm_code\kml\a.py"
Traceback (most recent call last):
  File"D:\zjm_code\kml\a.py", line 4, in <module>
    print a.index('s')
ValueError: substring not found

谢谢


尝试使用EDOCX1[1]代替-这将告诉您它在字符串中的位置:

1
2
3
4
5
6
a = '1234;5'
index = a.find('s')
if index == -1:
    print"Not found."
else:
    print"Found at index", index

如果只想知道字符串是否在其中,可以使用in

1
2
3
4
>>> print 's' in a
False
>>> print 's' not in a
True

1
2
print ('s' in a)     # False
print ('1234' in a)  # True

如果需要索引,也可以使用find,但不希望引发异常。

1
2
print a.find('s')    # -1
print a.find('1234') # 0


str.find()str.index()几乎相同。最大的区别是,当找不到字符串时,str.index()会抛出一个错误,就像您得到的错误一样,而str.find()会像其他人发布的那样返回-1。

有两个姊妹方法,分别称为str.rfind()str.rindex(),它们从字符串的末尾开始搜索,并朝着开始工作。

另外,正如其他人已经指出的,in操作符(以及not in操作符)也是完全有效的。

最后,如果您试图在字符串中寻找模式,您可以考虑使用正则表达式,尽管我认为有太多的人在过度杀戮时使用它们。换句话说,"现在你有两个问题。"

就我目前掌握的所有信息而言,就是这样。但是,如果您正在学习python和/或编程,我给学生的一个非常有用的练习是尝试自己用python代码构建*find()*index(),甚至是innot in(尽管作为函数)。您将获得遍历字符串的良好实践,并且您将对现有字符串方法的工作方式有更好的了解。

祝你好运!


如果只想检查子字符串是否在字符串中,可以使用in运算符。

1
2
if"s" in mystring:
   print"do something"

否则,您可以使用find()并检查-1(未找到)或使用index()


让我们按照下面提到的方法来试试这个。

方法1:

1
2
3
4
if string.find("substring") == -1:
 print("found")
else:
 print("not found")

方法2:

1
2
3
4
 if"substring" in"string":
  print("found")
 else:
   print("not found")

这是检查字符串中是否存在子字符串的正确方法。

定义SEA(str,str1):

1
2
3
4
5
6
if(str1[0:] in str):

    return"yes"
else:
    return"no"
print(sea("sahil","ah"))