擅长:python、mysql、java
<p>所以<code>.find()</code>总是返回给定键的第一个实例。假设字符串是<code>bobabob</code>,那么结果是<code>4</code>。因为您遍历字符串,对于每个给定的字母,他都会搜索字母的第一次出现。所以第一个<code>b</code>将导致第一个<code>bob</code>。<code>o</code>不满足if语句。然后是另一个<code>b</code>。但是if语句不会查看第二个<code>b</code>的字符串,然后再查看3个字符……它将使用第一个<code>b</code>的外观,因此从一开始就得到<code>bob</code></p>
<p>我希望你明白我想说的话!总而言之:</p>
<p>当您在字符串中查找<code>bob</code>并且<code>b</code>的第一次出现是<code>bob</code>组合的一部分时,打印将为您提供字符串中<code>b</code>的数量,因为每个<code>b</code>都将if语句引向第一个<code>bob</code>。如果您的第一个<code>b</code>不是<code>bob</code>组合的一部分,例如<code>breadbobbob</code>,您的结果将始终是<code>0</code></p>
<p>解决这个问题的简单方法是使用<code>s.count("bob")</code></p>