• Предмет: Информатика
  • Автор: vanisherxxx
  • Вопрос задан 2 года назад

Текстовый файл содержит строки различной длины. Общий объём файла не превышает 1 Мбайт. Строки содержат только заглавные буквы латинского алфавита (ABC…Z). Определите количество строк, в которых буква E встречается чаще, чем буква A.


Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.


Не пойму, в чём ошибся, у меня ответ 991, а должно быть 467:


with open('inf_22_10_20_24.txt', 'r') as F:
s = F.readline()

m, l, dl = 0, 0, 0
for line in s:
for i in range(1, len(s)):
if s[i] == 'A': l += 1
elif s[i] == 'E': dl += 1
if dl > l:
m += 1
l = 0
dl = 0

print(m)


В общем, нужно найти ошибку и исправить программу.

Приложения:

Ответы

Ответ дал: 4688f71163
19

Ответ:

Программа на Python приведена ниже

Объяснение:

https://imgur.com/a/zEYf69b (или скриншот, если не откроется ссылка)

Ваша программа:

1) Вы считываете все в одну строку, что не соответствует главному условию задачи: в файле даны строки, а не одна строка. На скриншоте приведено верное написание: пишем цикл for s in file.readlines(), так мы обозначим, что строк больше одной.

2) Для подсчета количества букв логично использовать встроенный метод str.count(''), однако если вы решили обойти это и использовать специальные переменные для подсчета (такой вариант решения возможен, хотя и менее эффективен с точки зрения написания кода), верное решение таким путем приведено на скриншоте №2

   2.1) В программе №2 необходимо не забывать обнулять переменные

         после каждого цикла, как это указано на скриншоте №2

Приложения:

vanisherxxx: Благодарю
Вас заинтересует