在python代码中获取错误

时间:2018-05-01 21:42:00

标签: python-3.x

几周后开始学习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;。有人可以告诉我原因可能是什么?

1 个答案:

答案 0 :(得分:0)

快速回答是使用自定义构建的功能,如本文所示:

example of .count(substring)

但我的猜测是,你并不是那么有兴趣在一个更长的字符串中找到“bob”,但更多的是如何弄清楚python如何工作和你的逻辑。

我认为这些数字是关闭的,因为你正在迭代所有的s,然后使用你的第二个if语句捕获2个额外的字符。在for循环中执行此操作可能更简洁:

for a in range(0,len(s)-3):
   b = a + 1
   c = b + 1 
   ...

并遵循这个逻辑。