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



@shindayoni

На курсах разобрали программу на 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)


Решения вопроса 1



@SoreMix

Потому что уже делаете цикл по каждой строке
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

комментарий


Ответы на вопрос 1



@GavriKos

А почему вы итерирование по s начинаете с 1, а не с 0? Первый элемент не надо учитывать?
В паскале насколько я помню индексация массива с 1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *