(python)我不断收到IndexError:字符串索引超出范围

时间:2020-04-10 07:30:42

标签: python

我正在尝试解决问题

实现映射器mapFileToCount,该映射器获取一个字符串(文件中的文本)并返回该字符串中大写单词的数量。单词定义为系列 字符之间用空格或换行符分隔的字符。如果单词的首字母大写(A对a),则大写。

当前我的python代码为

def mapFileToCount(s):
    lines = (str(s)).splitlines()
    words = (str(lines)).split(" ")
    up = 0
    for word in words:
        if word[0].isupper() == True:
            up = up + 1
    return up

但是我一直收到错误IndexError:字符串索引超出范围

请帮助

2 个答案:

答案 0 :(得分:1)

现在

  • 给定ctx.type().getToken()
  • Hi huy \n hi you there将是lines
  • ['Hi huy ', ' hi you there']将是words,因为您使用["['Hi", 'huy', "',", "'", 'hi', 'you', "there']"]进行分割

我建议您使用str(lines)立即在任何空格上分割。


然后words = re.split("\s+", s)的问题就出现在IndexError这样的情况下(_是空格),当您拆分时,结尾将有一个空字符串,并且您无法访问第一个char char为此,所以只需在条件中添加一个条件

  • Hi where are you__,因为大小为0的单词是if word,其他False

  • True供您测试

if word[0].isupper()

答案 1 :(得分:0)

字符串索引超出范围表示您尝试访问的索引在字符串中不存在。这意味着您正在尝试从给定点的字符串中获取字符。如果该给定点不存在,那么您将尝试获取不在字符串内的字符。

在您的代码中,该word[0]