擅长:python、mysql、java
<p>如果您不想将重叠的<code>bob</code>作为单独的值进行计数,这将很容易:</p>
<pre><code>s.count('bob')
</code></pre>
<p>但你显然知道。(我不得不猜测,基于您的预期输出是2而不是1…在将来,最好解释一下您的问题,而不是让它变得模棱两可。)如帮助所述,<code>count</code>返回“子字符串<code>sub</code>出现的<strong>不重叠的</strong>次数…”,这样做不会有任何好处。</p>
<p>因此,为此,您必须手动操作。我将展示一个足以让您入门的示例:</p>
<pre><code>for i in range(len(s)):
if s[i:].startswith('bob'):
print('Found a bob')
</code></pre>
<p>一个稍微聪明的方法是对字符串使用<code>find</code>方法。您可以在<a href="http://docs.python.org/3.3/library/stdtypes.html#str.find" rel="nofollow">online docs</a>中或通过在交互式控制台中键入<code>help(str.find)</code>来查找有关此操作的详细信息。注意<code>find</code>接受一个<code>start</code>参数。你应该能够弄清楚这对你有什么帮助;要想把细节弄清楚可能需要一点工作,但是如果你陷入困境,你总是可以提出一个新问题来寻求具体的帮助。</p>