如何在列表中没有字母'e'的单词上打印?

时间:2019-02-18 17:36:29

标签: python python-3.6

该代码必须将单词打印在不包含字母e的列表中。我正在使用的列表在一个单独的文件words.txt上。我的代码中有一些漏洞,但是我不确定它们在哪里,因为我得到的单词只包含字母e。这是教科书“ Think Python”中的练习9.2。

第2到6行是读取一个单词并返回带有字母e的True为False的代码。然后,我需要对其进行修改以完成任务。

fin = open('words.txt')
def has_no_e(word):
  if 'e' in word:
    return True
  else:
    return False
count = 0
for word in fin:
    word = word.strip()
    if has_no_e(word):
        count = +1
        print (word)
percent = (count / 113809.0) * 100
print(str(percent))

该代码应该在word.txt上打印所有不包含字母e的单词。

6 个答案:

答案 0 :(得分:0)

def has_no_e(word):
  if 'e' in word:
    return True
  else:
    return False

此功能的名称与之相反。如果单词的确包含'e',则返回True

答案 1 :(得分:0)

检查此功能是否起作用。

if 'e' in word:
    return False
else:
    return True

答案 2 :(得分:0)

就像这样:(前10个字):

filename = '/etc/dictionaries-common/words'
words = [word for word in open(filename).read().split() 
         if 'e' not in word]
print(words[:10])

答案 3 :(得分:0)

此处将整个文件内容读入word。上面代码中的for循环应修改为

for word in fin:

for word in fin.read().split():

此外,如果单词不包含has_no_e()True应该返回e,则其实现应包含以下行:

    if 'e' in word:

替换为

    if 'e' not in word:

答案 4 :(得分:0)

我希望这段代码是正确的

count = 0
fin   = open('words.txt', 'r') #Open the file for reading
words = fin.readlines()        #Read words from file
fin.close()                    #Close the file

for word in words:              
    word = word.strip()
    if not 'e' in word:        #If there is NO letter e in the word
        count = count + 1
        print(word)

percent = (count / 113809.0) * 100
print(str(percent))

这样做

if 'e' in word:
    return True
else:
    return False

您选择了每个带有字母“ e”的单词,而不是没有单词的单词。

答案 5 :(得分:0)

这是将单词放入列表后如何解决此问题的方法。

words = ['This', 'is', 'an', 'example', 'of', 'a', 'short', 'sentence.']
words_without_e = [ word for word in words if 'e' not in word ]

print(words_without_e)