【问题标题】:IndexError: string index out of range for pythonIndexError:python 的字符串索引超出范围
【发布时间】:2017-09-07 17:37:21
【问题描述】:

对于第 7 行,它提到我遇到了一个错误。我该怎么办? 问题中有一些条件: 如果字符是字母, 将字符添加到单词和 检测到非字母(空格、标点符号、数字...)定义单词的结尾并转到其他内容。 对于其他: 按字母顺序检查单词是否大于“g”,如果是:打印单词和 设置 word = 空字符串, 要不然: 设置 word = 空字符串并构建下一个单词

phrase = input('enter a 1 sentence quote, non-alpha separate words: ')
word = ""
for letter in phrase:
    if letter.isalpha() == True:
        word = word + letter
    else:
        if word[0] > "g":
            print (word.upper() + '\n')
            word = ""
        else:
            word = ""
print (word)

【问题讨论】:

  • 第 9 行似乎是 word = ""。我非常怀疑这是给你错误信息的那一行。
  • 您使用字符串索引的行似乎是if word[0] > "g":。我可以想象word 中包含零个字符的许多方式(比如输入的第一个字符不是字母)。
  • 请发布您的回溯。
  • 很抱歉应该是 line7
  • 您正在初始化 word=""(零长度字符串)。当phrase[0](即第一个letter 是非alpha 时,会出现一些情况,这会引发此错误,因为您不能为空字符串下标。

标签: python string


【解决方案1】:

此代码将显示您在评论部分提出的预期答案。

phrase = input('enter a 1 sentence quote, non-alpha separate words: ')
word_list = phrase.split(' ')
ans=''
for word in word_list:
    if word[0].lower() > 'g':
        ans+=word.upper()+' '

print(ans)

对于代码中的第 7 行,您始终采用输入的第一个字母。这就是为什么它不起作用。

【讨论】:

    猜你喜欢
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多