Python 如何使用CodeHS 8.4.13:Owls第2部分的枚举函数?

Python 如何使用CodeHS 8.4.13:Owls第2部分的枚举函数?,python,Python,这就是我应该做的: 此程序是以前“Owls”程序的扩展。你可以 在这里找到您以前的程序 除了报告有多少单词包含owl这个词, 你应该报告单词出现的索引 下面是程序运行的示例: Enter some text: Owls are so cool! I think snowy owls might be my favorite. Or maybe spotted owls. 有3个单词包含 “猫头鹰”。它们出现在索引处:[0,7,15],您可以从 输出时,必须使用另一个列表来存储索引 找到包含“猫

这就是我应该做的:

此程序是以前“Owls”程序的扩展。你可以 在这里找到您以前的程序

除了报告有多少单词包含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
函数的方式是从其他网站获得的。当我尝试运行此代码时,首先得到的是以下错误:

Error: Line 5
ParseError: bad token on line 5
由此,我知道我使用的
enumerate
方法是错误的。但是,我不知道正确的使用方法。

在这行:

print "They occured at indices: for c, value in enumerate(text, 1):
    print(c, value)
您还没有用
结束字符串,因此Python会不断读取越来越多的内容,假设这个字符串还有更多内容,直到它到达文件的末尾。您不希望看到这一部分:
对于c,枚举中的值(文本,1):
是希望Python执行的命令,它本身不是希望Python打印的字符串。因此,首先我们关闭字符串:

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

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

在搜索如何使用
enumerate()的示例时,您找到了哪些链接
?您是否尝试了链接中列出的任何代码?我在描述中说,我现在使用的
枚举
方法来自一个网站。这就是那个网站。好的,您对发布的错误有何看法?(您在stackoverflow方面已经比其他不发布错误的人做得好得多!)顺便说一句,我使用的是
split()
对。它就是这样工作的。在使用
text.split()
之后,您的
文本是否真的发生了变化?我的印象是它没有变化,但我可能会对版本差异感到困惑,因为我将Python 3用于您的Python 2