Суммирование символов в строках из текстового файла? - PullRequest
0 голосов
/ 25 мая 2018

У меня есть такой текстовый файл:

This is just
an example of
a textfile

, и я хотел бы найти сумму всех слов, которые не содержат "e".Эта сумма должна быть напечатана для каждой строки, и должна быть общей суммой слов в этой строке.

В настоящее время у меня есть это:

with open(sys.argv[1], "r") as f:
   count = 0
   for line in f:
   words = line.split()
   for word in words:
      if "e" not in word:
         for char in word:
            count += 1
         print(count)

и вывод, который я получаю:

4
6
10
12
14
15

, когда должно быть:

10
4
1

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете использовать встроенную функцию len, чтобы получить длину строки.Причина, по которой вы получаете больше цифр, чем ожидаете, заключается в том, что вы не сбрасываете переменную count для каждой строки, а также печатаете после каждого слова, а не каждой строки.

with open(sys.argv[1], "r") as f:
    for line in f:
        count = 0
        words = line.split()
        for word in words:
            if "e" not in word: 
               count += len(word)
        print(count)

Вы можете написать это более компактно как

with open(sys.argv[1], "r") as f:
    for line in f:
        print(sum(len(word) for word in line.split() if 'e' not in word))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...