You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:用循环统计字符串中'bob'出现次数

解决Python中统计'bob'出现次数的问题

嘿,我来帮你搞定这个问题!作为Python新手,遇到这类循环统计的问题很正常,咱们先看看你代码里的问题,再一步步修正。

你的代码存在的问题

你的思路是想用find来找'bob',但有两个关键问题:

  1. strings = s.find(string)只执行了一次,只会得到第一次出现'bob'的位置,之后循环里没有更新这个位置,导致只要第一次找到了,循环遍历每个字符时就会一直累加count,结果完全不对。
  2. for i in s是逐个遍历字符,但这样没法检查连续三个字符的组合,完全没利用到find返回的位置信息。

方法一:用while循环实现

我们可以通过不断更新查找的起始位置,来逐个找到所有'bob':

count = 0
start = 0
s = 'azcbobobegghakl'  # 可替换为任意目标字符串
while True:
    # 从start位置开始查找'bob'
    pos = s.find('bob', start)
    if pos == -1:  # 找不到就退出循环
        break
    count += 1
    # 把起始位置移到当前找到的位置+1,避免重复计数,同时能找到重叠的情况(比如'bobob'里的两个'bob')
    start = pos + 1
print(f"Number of times bob occurs is: {count}")

方法二:用for循环实现

如果想用for循环,我们可以遍历字符串的索引,每次检查从当前索引开始的三个字符是否是'bob':

count = 0
s = 'azcbobobegghakl'
# 遍历到倒数第三个字符即可,因为要取i到i+2的三个字符
for i in range(len(s) - 2):
    if s[i:i+3] == 'bob':
        count += 1
print(f"Number of times bob occurs is: {count}")

这两种方法都能正确统计出'bob'的出现次数,比如你给的例子s = 'azcbobobegghakl',两种方法都会输出Number of times bob occurs is: 2,完全符合题目要求。

内容的提问来源于stack exchange,提问作者user4219935

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:52:26