2017-06-15 52 views
0

我想查找并打印出下列程序中字符串中有多少个bob,但它不起作用。任何人都可以告诉它有什么问题吗?python中的迭代算法

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)  

回答

0
s='bob123 bob bob 3434' 
print(s.count("bob")) 

你可以指望有多少bob OCCURENCES他们是在你的字符串。

repl.it working

+0

好吧,我可以这样算,但我想知道那个代码有什么问题。指什么是算法该代码在数学上有错误。 @zooly –

+0

如上所述hiro(https://stackoverflow.com/a/44562439/4781975),你需要在所有情况下迭代。使用当前缩进,只有在找到字符串时才会增加一个&b – Zooly

0

什么是不工作的,你的缩进熄灭:你需要增加ab也如果字符串没有找到;两者必须增加1只(您2增加b):

for char in s: 
    if s[a:b]=='bob': 
     num+=1 
    a+=1 
    b+=1 

一个稍微更Python的方式来做到这一点可能是:

num = 0 
for i in range(len(s)+1-3): 
    if s[i:i+3] == 'bob': 
     num+=1 

串的count方法将是这个更好的版本:

s.count('bob')