import re
twovowels=re.compile(r".*[aeiou].*[aeiou].*", re.I)
nonword=re.compile(r"\W+", re.U)
text_file = open("twoVoweledWordList.txt", "w")
file = open("FirstMondayArticle.html","r")
for line in file:
for word in nonword.split(line):
if twovowels.match(word): print word
text_file.write('\n' + word)
text_file.close()
file.close()
这是我的python代码,我试图只打印出现两个或更多元音的单词。当我运行此代码时,它会将所有内容(包括没有元音的单词和数字)打印到我的文本文件中。但是pythonshell向我展示了所有有两个或更多元音的单词。那我该怎么改变呢?你知道吗
我建议另一种更简单的方法,不要使用
re
:因为它在
if
条件之外。代码行应该是这样的:这里有一个sample program on Tutorialspoint显示上面的代码是正确的。你知道吗
你可以用str.translate公司比较长度。如果删除字母后长度差大于1,则至少有两个元音:
在您自己的代码中,您总是编写单词,因为
text_file.write('\n' + word)
在if块之外。关于为什么不应在一行上有多个语句的一个很好的教训,您的代码相当于:使用if的代码位于正确的位置,对命名约定进行了一些更改,在赋值之间添加了一些空格,并使用
with
为您关闭文件:相关问题 更多 >
编程相关推荐