не могу найти ошибку в коде на питоне
я решала следующую задачу на питоне:
Найти минимальное и максимальное из чётных положительных чисел, записанных в файле 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 тестов программа выдает неверный ответ (к сожалению, эти тесты неизвестны). Как исправить?
Ответы (1 шт):
- Откуда вы знаете, что минимум меньше
100001? ИспользуйтеNoneв качестве индикатора отсутствия значения:
mi = None
...
if mi is None or num < mi:
mi = num
Файл для вывода нужно открывать так же через
with, как и для ввода. Иначе нет гарантии, что содержимое буфера будет уже записано в файл в момент проверки.Положительное число - это число строго больше нуля, так что не
num >= 0, аnum > 0проверка должна быть.Ну и тут не сказано, какой должен быть формат вывода в файл, если минимум и максимум найдены. Может там они на отдельных строках должны быть, например?