Python 3.x python中的迭代算法

Python 3.x python中的迭代算法,python-3.x,Python 3.x,我想用下面的程序查找并打印字符串中的bob数,但它不起作用。有人能告诉我它出了什么问题吗 s='bob123 bob bob 3434' num=0 a=0 b=3 for char in s: if s[a:b]=='bob': num+=1 a+=1 b+=2 print(num) 您可以计算字符串中出现了多少次bob 不起作用的是缩进已关闭:如果找不到字符串,还需要增加a和b;并且两者只需增加1(您将b增加2): 要做到这

我想用下面的程序查找并打印字符串中的bob数,但它不起作用。有人能告诉我它出了什么问题吗

s='bob123 bob bob 3434'
num=0
a=0
b=3
for char in s:
    if s[a:b]=='bob':
        num+=1
        a+=1
        b+=2
print(num)     
您可以计算字符串中出现了多少次
bob


不起作用的是缩进已关闭:如果找不到字符串,还需要增加
a
b
;并且两者只需增加
1
(您将
b
增加
2
):

要做到这一点,有一种更为类似蟒蛇的方法:

num = 0
for i in range(len(s)+1-3):
    if s[i:i+3] == 'bob':
        num+=1
字符串方法将是更好的版本:

s.count('bob')

好的,我可以这样数数,但我想知道那个代码有什么问题。意味着那个代码在算法上有什么问题@zoolyAs说hiro(),在所有情况下都需要迭代。使用当前缩进,仅当在字符串中发现出现时才增加a和b
num = 0
for i in range(len(s)+1-3):
    if s[i:i+3] == 'bob':
        num+=1
s.count('bob')