def double_chars(word):
for j in range(len(word)):
if word[j] == word[j:j+1]:
chars_count = chars_count + 1
return chars_count
test_word = "Hello..world!"
print(double_chars(test_word))
Error: if word[j] == word[j+1]:
IndexError: string index out of range
这个函数的字符串索引一直超出范围。我尝试过不同的索引和切片方法。
我试图返回具有双字符的字符串中的字符计数,例如:bell--rung --> "ll" = 1
和"--"=1。因此计数为2。
我在代码中做错了什么吗?
问题是,范围从0
(包括(到字符串的长度(不包括(生成,这对于索引来说是可以的,因为字符串是基于0的索引,但你不仅访问当前索引,还访问下一个索引,所以当达到j
的最后一个值时,[j+1]
是一个太远的
def double_chars(word):
chars_count = 0
for j in range(len(word) - 1):
if word[j] == word[j + 1]:
chars_count += 1
return chars_count
6 | 7 | 8 | 9 | 10 | <11>|
---|---|---|---|---|---|
x[j] | w | ||||
w | |||||
r | >td style="text-align:left;">l>td style="ext-align:right;">d