我正在努力解决这个问题
实施制图员, mapFileToCount, 它获取一个字符串(文件中的文本)并返回该字符串中大写的字数。一个词被定义为一个系列 由空格或换行符与其他单词分隔的字符。如果一个单词的第一个字母是大写的(A vs 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
但是,我不断得到错误索引器:字符串索引超出范围
请帮忙
字符串索引超出范围意味着您试图访问的索引在字符串中不存在。这意味着您正试图从给定点的字符串中获取一个字符。如果给定的点不存在,那么您将尝试获取不在字符串内的字符
在您的代码中,它是
word[0]
现在
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
的问题出现在类似Hi where are you__
(u是空格)的情况下,当您拆分时,末尾将有一个空字符串,并且您无法访问该字符串的第一个字符,因此只需在if中添加一个条件if word
因为0大小的单词是False
,而其他True
if word[0].isupper()
供您测试相关问题 更多 >
编程相关推荐