. Определите минимум и максимум среди чисел, которые оканчиваются на 3 и делятся на 7

В файле содержится последовательность целых чисел. Элементы принимают целые значения от 1 до 10000 включительно. Определите минимум и максимум среди чисел, которые оканчиваются на 3 и делятся на 7.

В качестве ответа запишите сначала минимум, а потом максимум без пробелов и разделителей. Например, если минимум равен 99, а максимум - 1234, то ответ 991234.

Самая большая проблема, что в моём файле в конце чисел, стоит \n. И при добавлении в массив этих чисел добавляется и \n тоже. Но даже, когда я удалил \n, решение дальше не идёт.

mas = []
f = open("17.txt").read().splitlines()
if f % 10 == 3 and f % 7 == 0:
   mas.append(f)
   print(f)

Ответы (2 шт):

Автор решения: Rendivy
mas = []
f = open("17.txt").read().splitlines()
for i in range(len(f)):
   if int(f[i]) % 10 == 3 and int(f[i]) % 7 == 0:
       mas.append(f[i])
mas.sort()
print(mas[0],mas[-1])

Воспользовался советом пройтись циклом по элементам.

→ Ссылка
Автор решения: Stanislav Volodarskiy

Задача решается в константной памяти. Не надо хранить целиком массив значений:

min_v = 10_000                          # минимум начинается с максимума
max_v = 1                               # максимум начинается с минимума
with open('17.txt') as f:               # привыкайте открывать файлы в `with`
    for line in f:                      # перебираем строки из файла
        v = int(line)                   # переводим в целое
        if v % 10 == 3 and v % 7 == 0:  # оканчивается на 3 и делится на 7?
            min_v = min(min_v, v)       # обновляем текущий минимум
            max_v = max(max_v, v)       # обновляем текущий максимум
print(min_v, max_v, sep='')             # печать без пробела
→ Ссылка