Задать вопрос
shindayoni
@shindayoni
Студент

Задание 24 из ЕГЭ, в чем ошибка в коде на python?

На курсах разобрали программу на Pascal ABC, сам пишу на Python. Переписал программу, но ответ не сходится с решением через Pascal, помогите пожалуйста исправить код и укажите в чем ошибка
Формулировка задания
606f3c9bda347744772175.jpeg

Код на Паскале (QnA не поддерживает вставку кода PABC)
606f381a4e703817032565.jpeg

Код на Python, в этой программе ответ 231, а должен быть 467
f = open('24.txt')

k = 0
for line in f:
    ka = 0
    ke = 0
    s = str(f.readline())
    for i in range(1, len(s)):
        if s[i] == 'A':
            ka += 1
        elif s[i] == 'E':
            ke += 1
    if ke > ka:
        k += 1
f.close()
print(k)
  • Вопрос задан
  • 370 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Потому что уже делаете цикл по каждой строке
for line in f:
и в этом цикле берете читаете еще одну строку
s = str(f.readline())
В итоге половина строк просто улетает.

k = 0

with open('24.txt') as f:
    for line in f:   
        ka = 0
        ke = 0
        
        for char in line:
            if char == 'A':
                ka += 1
            elif char == 'E':
                ke += 1

        if ke > ka:
            k += 1

print(k)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
А почему вы итерирование по s начинаете с 1, а не с 0? Первый элемент не надо учитывать?
В паскале насколько я помню индексация массива с 1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы