Выполнить подсчёт всех символов "а" в файле

F = open('file.txt', 'r')
kolvo = 0
for i in F:
  if 'a' in i:
    kolvo =+1
  if kolvo > 1:
    print('Количество элементов в файле :', kolvo)
  elif kolvo == 0:
    print('Элементов в файле нет')

В данном коде требуется прочитать все строки файла и выполнить подсчёт всех символов "а" в файле. Но у меня в любом случае программа выдаёт "Элементов в файле нет". Помогите исправить. Заранее спасибо!


Ответы (3 шт):

Автор решения: Константин Комиссаров

Открывать файлы лучше с помощью контекстного менеджера with, это гарантия того, что файл будет закрыт после выполнения действий.

В питоне есть оператор += и нет оператора =+.

Когда вы пишете x =+1, вы на самом деле пишете x = 1. Поскольку у вас неправильно написано условие, у вас не срабатывает ни один блок. Потому что у вас в условии kolvo > 1, но у вас оно не > 1, а просто 1. Нужно было делать условие больше или равно. kolvo >= 1.

Но т.к. 0 - это falsy-объект, а все что больше 0 - это truthy объект, то можно вообще не писать эти сравнения, а написать так, как в моем примере.

count = 0

with open('file.txt', 'r') as f:
    for row in f:
        if 'a' in row:
            count += 1

if count:
    print(f'Количество элементов в файле: {count}')
else:
    print('Элементов в файле нет')

Если вы хотите посчитать не количество строк с вашей буковой, а именно количество символа в файле, то это еще проще:

with open('file.txt', 'r') as f:
    count = f.read().count('a')

if count:
    print(f'Количество элементов в файле: {count}')
else:
    print('Элементов в файле нет')
→ Ссылка
Автор решения: Durtanyan

Выражение: kolvo =+ 1, вот корень зла. Нужно писать +=.
Нет острой необходимости писать:

if kolvo > 1:

    print('Количество элементов в файле :', kolvo)

elif kolvo == 0:

    print('Элементов в файле нет')

Можно просто написать:

 print('Количество элементов в файле :', kolvo)
→ Ссылка
Автор решения: Mattern

Залезу и я со своим вариантом:

kolvo = open('file.txt').read().count('a')
if kolvo:
    print(f'Количество элементов в файле: {kolvo}')
else:
    print('Элементов в файле нет')
→ Ссылка