我必须为我正在进行的入门编程课编写一小段代码 - 在我尝试这一课之前我没有遇到任何麻烦。到目前为止,代码工作正常,但我一直得到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语句
答案 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)
您应该检查作业是否有关于如何处理空字符串的任何说明。