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