a='1234;5'
print a.index('s')
错误是:
> "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
感谢
答案 0 :(得分:10)
请尝试使用find()
- 这将告诉您字符串中的位置:
a = '1234;5'
index = a.find('s')
if index == -1:
print "Not found."
else:
print "Found at index", index
如果您只是想知道 字符串是否在那里,您可以使用in
:
>>> print 's' in a
False
>>> print 's' not in a
True
答案 1 :(得分:6)
print ('s' in a) # False
print ('1234' in a) # True
如果您还需要索引,请使用find
,但不要引发异常。
print a.find('s') # -1
print a.find('1234') # 0
答案 2 :(得分:3)
如果您只想检查子字符串是否在字符串中,则可以使用in
运算符。
if "s" in mystring:
print "do something"
否则,您可以使用find()
并检查-1(未找到)或使用index()
答案 3 :(得分:3)
str.find()
和str.index()
几乎完全相同。最大的区别是,当找不到字符串时,str.index()
会抛出错误,就像你得到的那样,而str.find()
会返回-1,而其他人已经发布了错误。
有两个名为str.rfind()
和str.rindex()
的姐妹方法从字符串的末尾开始搜索,并朝着开头工作。
此外,正如其他人已经展示的那样, in
运算符(以及 not in
)也完全有效。< / p>
最后,如果您正在尝试在字符串中查找模式,您可以考虑使用正则表达式,但我认为有太多人在它们过度使用时会使用它们。在其他(着名)单词中,“now you have two problems。”
就我现在拥有的所有信息而言。但是,如果你正在学习Python和/或学习编程,我给学生们的一个非常有用的练习就是尝试自己在Python代码中构建*find()
和*index()
,甚至 {{ 1}} 和 in
(虽然是功能)。你可以通过字符串遍历良好的练习,和就现有字符串方法的工作方式你将更好地理解。
答案 4 :(得分:1)
def substr(s1, s2): # s1='abc' , s2 = 'abcd'
i = 0
cnt = 0
s = ''
while i < len(s2):
if cnt < len(s1):
if s1[cnt] == s2[i]:
cnt += 1
s += s2[i]
else:
cnt = 0
s = ''
i += 1
if s == s1:
print(f'{s1} is substring of {s2}')
else:
print(f'{s1} is not a substring of {s2}')
答案 5 :(得分:0)
这是检查字符串中是否存在子字符串的正确方法。
def sea(str,str1):
return View("Show", entries);
答案 6 :(得分:0)
让我们根据以下提到的方法尝试一下。
方法1:
if string.find("substring") == -1:
print("found")
else:
print("not found")
方法2:
if "substring" in "string":
print("found")
else:
print("not found")