2017-06-15 101 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')