字符串索引超出范围-Python基于逻辑的错误


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
<11>o>td style="text-align:left;">l>td style="ext-align:right;">d
678910
x[j]w
w
r

最新更新