我正在尝试解决问题
实现映射器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:字符串索引超出范围
请帮助
答案 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]
。