几周后开始学习python。写了一个python程序来计算序列' bob'出现在字符串s中:
s=input('Enter String')
a=0
b=1
c=2
count=0
for var in s:
if(s[a]=='b' and s[b]=='o' and s[c]=='b'):
count+=1
if (c<(len(s)-1)):
a+=1
b+=1
c+=1
print(count)
输出显示正确的字符串,如&bobbooboboooblobobbobbc&#39;。但是,对于像&#39; nqsbobobdbtobob&#39;这样的字符串,我得到的输出数比实际计数的数量多两个,超过&#39; bob&#39;。有人可以告诉我原因可能是什么?
答案 0 :(得分:0)
快速回答是使用自定义构建的功能,如本文所示:
但我的猜测是,你并不是那么有兴趣在一个更长的字符串中找到“bob”,但更多的是如何弄清楚python如何工作和你的逻辑。
我认为这些数字是关闭的,因为你正在迭代所有的s,然后使用你的第二个if语句捕获2个额外的字符。在for循环中执行此操作可能更简洁:
for a in range(0,len(s)-3):
b = a + 1
c = b + 1
...
并遵循这个逻辑。