没有打印出正确的字母 - Python

时间:2017-04-09 21:57:32

标签: python-3.x letters

问题:

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。

1 个答案:

答案 0 :(得分:0)

file_output.read()读取整个文件并将其作为字符串返回。所以output是字符串"cheese is good"

问题是for line in string:。您希望它包含line="cheese",然后是line="is",最后是line="good"

然而,它反过来逐字逐句。因此它使用line='c'运行循环,然后运行line='h'等等。为了使它按预期执行,您需要在换行符或空格上拆分output(取决于文件如何分隔单词)并迭代结果列表。