2015-06-21 117 views
2

如何编写程序以打印特定字符串在给定单词中出现的次数。 例如:如果我在寻找一个字“asdadgfrdad”字符串“爸爸” 输出应该是2计算特定字符串在给定单词中出现的次数

def numStrings(a): 
    strings = 'dad' 
    result = 0 
    for char in a: 
     if char in strings: 
      result = result + 1 
    print result 

numStrings("asdadgfrdad") 

但是这给了我存在的字母ð的次数,一个给定的词。如何纠正?

+2

字符串有一个内置方法:https://docs.python.org/ 2/library/stdtypes.html#str.count – BrenBarn

+0

'a.count(字符串)' – alexis

+0

在Python中intendation非常重要。 –

回答

5

短期和简单的Python的方式做这将是

'asdadgfrdad'.count('dad') 

然而,你的回答可能是也可能不是,当你看像'dadad'.count('dad')返回1而不是2.你希望是什么因为str.count返回子串的非重叠事件的数目。另一方面,如果要查找重叠子串的数量,则必须使用以下代码:

haystack = 'dadad' 
needle = 'dad' 
sum(haystack[i:i+len(needle)] == needle for i in range(len(haystack))) 
+0

你可以告诉我在哪里使用最后的代码?我试图在我的代码中包括它,但我没有得到所需的输出。 – coder123

+1

您必须使用最后一行作为表达式,例如'num_repeats = sum(haystack [i:i + len(needle)] == needle in i in range(len(haystack)))'然后使用'num_repeats'变量,只要你愿意。 (如“打印”等) –

相关问题