Python:类型索引错误的异常?

时间:2015-08-15 05:08:29

标签: python indexing conditional-statements

我必须为我正在进行的入门编程课编写一小段代码 - 在我尝试这一课之前我没有遇到任何麻烦。到目前为止,代码工作正常,但我一直得到IndexError,有人能告诉我我缺少什么吗?

vowel = {"a", "e", "o", "i", "u", "A", "E", "I", "O", "U"}
word = input("Enter a phrase: ")

if word[0] in vowel:
    print("an", word)
else:
    print("a", word)

编辑: 代码现在运行得很好,我需要的只是根据你的建议添加一个空字符串的if语句

2 个答案:

答案 0 :(得分:0)

我不确定你得到的确切错误。你提到IndexError通常会因超出范围的索引而引发。在您的代码中,我可以看到可能存在此问题的唯一地方是word[0]。但只有在没有输入任何单词时才会发生这种情况。我假设您的代码只是一个示例,并且始终输入一个单词。

您还使用花括号表示法定义了一个集合(vowel),对于某些旧的python(2.7之前)可能存在问题。

修改

根据您的评论,我非常确定它实际上是关于未输入的字词。所以,不要完全解决你的测试问题,我只是说你应该考虑程序中word为空时的情况。

答案 1 :(得分:0)

您可能需要检查空输入,这意味着测试系统只是输入而不是输入实际的字符串。当您尝试索引空字符串的第一个字符时,您将收到索引错误。尝试类似的事情:

vowel = {"a", "e", "o", "i", "u", "A", "E", "I", "O", "U"}
word = input("Enter a phrase: ")
if word == "":
    print("please enter a word")
elif word[0] in vowel:
    print("an", word)
else:
    print("a", word)

您应该检查作业是否有关于如何处理空字符串的任何说明。