假设s是一个小写字符串。我怎样才能找到s里面的字符串数y

时间:2013-10-23 21:38:48

标签: python

请在python中出现以下问题.....

假设s是一个小写字符串。

如何编写一个打印'bob'字符串s出现次数的程序。例如,如果s = 'azcbobobegghakl',则我的程序将打印

  

'bob发生的次数是:2'

我是一个全新的python并感谢任何帮助

2 个答案:

答案 0 :(得分:4)

如果您不想将重叠的bob计为单独的值,这很容易:

s.count('bob')

但你显然是这样做的。 (我不得不猜测,基于你的预期输出是2而不是1 ......将来更好地解释你的问题而不是让它模棱两可。)正如帮助所说,count返回“非重叠出现的子串sub ...”的数量,这样就不会有任何好处。

因此,为此,您必须手动完成。我将展示一个足以让你入门的例子:

for i in range(len(s)):
    if s[i:].startswith('bob'):
        print('Found a bob')

更聪明的方法是在字符串上使用find方法。您可以在online docs中找到相关详细信息,也可以在交互式控制台中输入help(str.find)。请注意find采用start参数。你应该能够弄清楚这对你有什么帮助;获取详细信息可能需要一些工作,但如果您遇到困难,您可以随时发布一个新问题,寻求特定帮助。

答案 1 :(得分:0)

你可以试试这种方式

string = "BOBOBOBOBOABCDE"
search = "BOB"
print len([i for i in range(len(string)) if string.startswith(search, i)])