Kodomo

Пользователь

Задание

Оценка за задание есть наибольшая из оценок за решённые задачи.

Задание должно быть выложено в репозиторий homework, который должен быть выложен на bitbucket. В противном случае, вне зависимости от задачи вы получаете не более 6 баллов.

Если вы хотите получить оценку выше 8 баллов, код должен быть чистым и читаемым (по существу я этого требовал и раньше). Т.е. все функции, переменные и классы имеют содержательные и понятные названия. Схема именования сущностей в одном типе сущностей однородна (т.е. либо везде сокращения, либо везде полные слова). Функции не бывают длиннее ~10 строк и не делают больше одного дела. Строки не бывают длиннее 75 символов (включая отступы). Внутри строк есть одна политика на тему того, как ставить пробелы. Части кода расположены стандартным образом: импорты -> константы и глобальные переменные -> определения (функций и классов) -> if __name__ == "__main__". Нет дублирования кода. Модуль, все функции и классы должны сопровождаться документацией. Там, где это возможно, функции должны сопровождаться примерами вызова, которые должны проходить doctest.

Я настоятельно рекомендую писать чистый код изначально (да, это значит, что иногда в очевидных, казалось бы, местах приходится на 10 минут задуматься над названием переменной), потому что так быстрее получить рабочую программу. Всё равно основное время уходит на отладку, а не на написание.

  1. (6 баллов) Напишите программу, которая открывает файл coords.csv, в котором на каждой строке написана пара координат. Программа пишет на экран координаты левого верхнего и правого нижнего угла прямоугольника, в который вписываются соответствующие точки. (Т.е. наименьшие значения X и Y, и наибольшие значения X и Y). Если во входном файле содержится ошибка, программа печатает на экран сообщение с указанием номера строки и причины ошибки.

  2. (10 баллов) Напишите программу, которая позволяет пользователю открыть CSV-файл, в котором лежат координаты и цвет (в каждой строке два числа и слово). Программа рисует кружочки по заданным координатам. В случае проблем с чтением файла программа не падает, а показывает пользователю диалог с сообщением об ошибке, в котором указана причина ошибки и место в файле, вызвавшее ошибку. Получается простенький формат картинок и маленький просмотрщик для этого формата.