如何将枚举函数用于CodeHS 8.4.13:“猫头鹰”,第2部分?

时间:2019-05-16 15:48:53

标签: python

这是我应该做的:

  

该程序是您以前的“猫头鹰”程序的扩展。您可以   在这里找到您以前的程序!

     

除了仅报告owl一词包含多少个词外,   您应该报告单词出现的索引!

     

这是程序的示例运行:

Enter some text: Owls are so cool! I think snowy owls might be my
favorite. Or maybe spotted owls.
     

其中包含3个字   “猫头鹰”。它们发生在以下索引处:[0, 7, 15]   输出,则必须使用另一个列表将索引存储在您的位置   找到包含“猫头鹰”的单词。

     

枚举功能也可能派上用场!

这是我现在的代码:

text = input("Enter some text: ")
text.lower()
text.split()
print "There are " + str(text.count("owl")) + " words that contained \"owl\"."
print "They occured at indices: for c, value in enumerate(text, 1):
    print(c, value)

我绝对不知道如何使用enumerate函数。我现在使用enumerate函数的方式是从其他网站获得的。当我尝试运行此代码时,首先得到的是此错误:

Error: Line 5
ParseError: bad token on line 5

据此,我知道我使用enumerate的方式是错误的。但是,我不知道使用它的正确方法。

1 个答案:

答案 0 :(得分:1)

在此行中:

print "They occured at indices: for c, value in enumerate(text, 1):
    print(c, value)

您还没有使用"结束字符串,因此Python会继续读取越来越多的字符串(假设该字符串还有更多内容,直到到达文件末尾)。作为部分,您不需要这样做:for c, value in enumerate(text, 1):是您要Python执行的命令,它本身并不是您要Python打印的字符串。首先,我们关闭您的字符串:

print "They occured at indices: "
for c, value in enumerate(text, 1):
    print(c, value)

这应该消除您的错误,但是会打印错误的答案。您在该行中还有另一个问题:text.split(),您不仅仅了解split()的工作方式。我将把这部分留给您研究。