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)
我想查找並打印出下列程序中字符串中有多少個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)
什麼是不工作的,你的縮進熄滅:你需要增加a
和b
也如果字符串沒有找到;兩者必須增加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')
好吧,我可以這樣算,但我想知道那個代碼有什麼問題。指什麼是算法該代碼在數學上有錯誤。 @zooly –
如上所述hiro(https://stackoverflow.com/a/44562439/4781975),你需要在所有情況下迭代。使用當前縮進,只有在找到字符串時纔會增加一個&b – Zooly