не могу найти ошибку в коде на питоне

Рейтинг: 0Ответов: 1Опубликовано: 26.04.2023

я решала следующую задачу на питоне:

Найти минимальное и максимальное из чётных положительных чисел, записанных в файле input.txt . Количество чисел неизвестно. Если в файле нет чётных положительных чисел, нужно вывести число 0. Результат записать в файл output.txt .

Причем в задаче ввод вывод должны быть выполнены в двух файлах. У меня получился код:

with open ("input.txt") as file:
    counter=0 
    mi=100001 
    ma=0
    for line in file:
        num=int(line)
        if num%2==0 and num>=0:
            if num<mi:
                mi=num 
                counter+=1
            if num>ma:
                ma=num 
                counter+=1
            else:
                counter+=1
    if counter==0:
        print(0, file=open("output.txt", "w"))
    else:
         print(mi, ma, file=open("output.txt", "w"))

Моя проблема в том, что после отправки кода в проверяющую систему (информатикс) оказалось, что на 7 тестов программа выдает неверный ответ (к сожалению, эти тесты неизвестны). Как исправить?

Ответы

▲ 2Принят
  1. Откуда вы знаете, что минимум меньше 100001? Используйте None в качестве индикатора отсутствия значения:
mi = None
...
            if mi is None or num < mi:
                mi = num
  1. Файл для вывода нужно открывать так же через with, как и для ввода. Иначе нет гарантии, что содержимое буфера будет уже записано в файл в момент проверки.

  2. Положительное число - это число строго больше нуля, так что не num >= 0, а num > 0 проверка должна быть.

  3. Ну и тут не сказано, какой должен быть формат вывода в файл, если минимум и максимум найдены. Может там они на отдельных строках должны быть, например?