该代码必须将单词打印在不包含字母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的单词。
答案 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)