我不确定为什么我会得到
IndexError:字符串索引超出范围
使用此代码。
s = 'oobbobobo'
a = 0
for b in range(len(s)-1):
if (s[b] == 'b') and (s[b+1] == 'o') and (s[b+2] == s[b]):
a += 1
elif (s[b] == 'b') and (s[b+1] == 'o') and None:
break
print("Number of times bob occurs is: ", a)
我认为elif
语句可以解决错误,所以我输了。
答案 0 :(得分:3)
在这种情况下,s
的长度为9,这意味着您循环range(8)
,因此b
的最高值为7
(和我在一起,我会带着这个... ...
当b = 7
(在循环的最后一次迭代中)时,正在检查if
语句中的条件表达式,其中包含:
(s[b+2] == s[b])
好吧,因为b = 7
,b + 2 = 9
,但s[9]
将超出界限(请记住,python是0索引,因此长度为9
的字符串中的最高索引是8
)。
我猜这个修复只是修改range
语句:
for b in range(len(s)-2):
...