Задание r3: рисование рамок
В файле r3.py написать программу, которая отображает одну строку текста в рамке. Программа должна принимает аргументы командной строки: -w – ширина рамки, -h – высота рамки, неразобранные аргументы – текст, который нужно отобразить в рамке. Программа должна быть корректным UNIX-скриптом, т.е., если в командной строке UNIX, находясь в рабочей директории задания, набрать ./r3.py, то она должна запуститься и корректно отработать.
Кроме того, r3.py должен являться модулем, предоставляющим класс Border для рисования рамок. Класс Border должен удовлетворять таким условиям:
- Конструктор получает два аргумента: ширину и высоту рамки.
Класс реализует метод repr, получающий один аргумент – строку, – и возвращающий в виде строки рамку заданной ширины и высоты, содержащую по центру переданную строку.
Пример использования в качестве программы:
$ ./r2 -w 7 -h 3 + x +-----+ | + x | +-----+
Пример использования в качестве модуля:
>>> import r2 >>> border = r2.Border(5, 3) >>> print border.repr("x") +---+ | x | +---+
- Подсказка: чтобы файл программы являлся заодно и модулем, реализующим что-нибудь, не надо предпринимать ни-ка-ких (ноль, зеро, нихиль) усилий. Если, конечно, вы пользуетесь примером каркаса программы из третьего занятия.
Подсказка №2: после строки options, args = parser.parse_args() (в примере каркаса программы из третьего занятия) в переменной args оказывается список аргументов командной строки, которые не попали в опции
Базовая оценка: 8..10 баллов (в зависимости от степени соответствия постановке и удобства использования программы)