问题:
A-编写一个名为has_no_e的函数,如果给定的单词中没有字母“e”,则返回True 它
B-修改你以前的程序只打印没有“e”的单词并计算 列表中单词的百分比没有“e。”
def main():
file = input("Enter a file: ")
file_output = open(file, 'r')
output = (file_output.read())
for line in output:
word = line.strip()
if len(word)>20:
print (word)
no_e = has_no_e(word)
count = 0
for line in output:
word = line.strip()
if has_no_e(word):
count +=1
print (word)
percent = (count/1)*100 #Im still working on the percentage part
print (percent)
def has_no_e(word):
for char in word:
if char in 'Ee':
return False
return True
输出:
C
ħ
取值
我
取值
C
0
0
1
900.0
问题:所以我的问题是,不是打印出整个单词,而是打印出每个字母(e除外)。如果它没有字母e,我试图将它打印出来。例如,我的文件说"奶酪很酷"。我期待它输出"很酷"只要。我该怎么做呢?另外,对于百分比:我怎样才能将这个单词拼成一个而不是单个字母?这种方式我可以做的百分比(计数/#字)* 100。
答案 0 :(得分:0)
file_output.read()
读取整个文件并将其作为字符串返回。所以output
是字符串"cheese is good"
。
问题是for line in string:
。您希望它包含line="cheese"
,然后是line="is"
,最后是line="good"
。
然而,它反过来逐字逐句。因此它使用line='c'
运行循环,然后运行line='h'
等等。为了使它按预期执行,您需要在换行符或空格上拆分output
(取决于文件如何分隔单词)并迭代结果列表。