Файлы · 9 из 15
Кадр тепловизора
В серверной повесили тепловизор: раз в минуту он пишет кадр в текстовый файл формата PGM. Стас хотел смотреть кадры ночью с дежурного компьютера, но смотрелка там их не открывает: тепловизор пишет числа как попало — по семнадцать в строке, а не по ряду картинки, и вставляет в файл свои пометки после решётки.
Что сделать
Прочитайте кадр тепловизора из файла PGM в список рядов чисел — как бы ни были разбиты строки файла.
Что приходит
fayl— открытый файл кадра или список его строк: что угодно, что перебирается строками
Что вернуть
Список рядов сверху вниз, ряд — список целых чисел слева направо.
Допишите функцию kadr в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Файл из пяти строк: P2, 2 2, 9, 0 9, 9 0 — это кадр 2 на 2 с наибольшей яркостью 9. Ответ — [[0, 9], [9, 0]].
kadr(["P2\n", "2 2\n", "9\n", "0 9\n", "9 0\n"])
[[0, 9], [9, 0]]
Файл PGM — это слова через пробелы, табуляции и переводы строк:
- слово
P2— вид файла; - ширина кадра;
- высота кадра;
- наибольшая яркость;
- дальше — ширина × высота чисел яркости, по рядам сверху вниз, в ряду слева направо.
Как слова разбиты по строкам файла, значения не имеет: вся шапка может стоять в одной строке, а ряд картинки — разъехаться на три.
Всё от знака # до конца строки — пометка, её не читают. Пометка бывает отдельной строкой и после чисел в той же строке, в том числе вплотную к числу: 5#горячо — это число 5.
Функция получает открытый файл (open(…)) или список строк — и то и другое перебирается в for строка за строкой. Возвращает список рядов кадра сверху вниз; ряд — список целых чисел.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.