为什么会出现“ IndexError:字符串索引超出范围”?

时间:2019-04-19 20:37:18

标签: python

我正在尝试计算每个字符出现的次数 句子。

message = 'It was a bright cold day in April, and the clocks were striking thirteen.'
c = 0
for  i in message:
   a=0
   for a in range(len(message) + 1):
    if i == message[a]:
     c+=1
   print(str(i)+ ' comes ' + str(c) + ' times.')
   c=0

2 个答案:

答案 0 :(得分:1)

for a in range(len(message) + 1):

如果您有一条包含五个字符的消息,则有效索引为[0][4],但是此循环将继续进入[5],这超出了范围。

从您的范围中取出+ 1

答案 1 :(得分:0)

Python中的字符串的起始索引为0,因此当遍历字符串的长度加上一个range(len(message) + 1)的索引时,当索引变为len(message)。改为将其更改为range(len(message)),代码将起作用。