Генераторы словарей и модули Рython
Функции в языке Python Функции в языке PythonВсе функции в языке Python возвращают какое-либо значение, хотя вполне возможно (и часто так и делается) просто игнорировать это значение. Возвращаемое значение может быть единственным значением или кортежем значений,...
Реализация генераторов Реализация генераторовМы рассмотрели коллекции-последовательности, tuple, collections, na-medtuple и list, поддерживающие, как и строки, возможность извлечения срезов. Также было рассмотрено использование оператора распаковывания...
Парсинг документов XML Парсинг документов XMLXML: Для парсинга документов XML широко используются два основных подхода. Один из них основан на анализе DOM (Document Object Model -объектная модель документа), а другой - на использовании SAX (Simple API for XML - упрощенный...
Копирование коллекций Копирование коллекцийКопирование коллекций: Поскольку в языке Python повсюду используются ссылки на объекты, когда выполняется оператор присваивания (=), никакого копирования данных на самом деле не происходит. Если справа от оператора находится литерал,...
Модуль CharGrid
Модуль CharGrid: Модуль CharGrid хранит в памяти сетку символов. Он предоставляет функции, позволяющие "рисовать" в сетке линии, прямоугольники и текст, а также функции отображения сетки в консоли. Функция CharGrid. add_rectangle принимает четыре обязательных аргумента: номер строки и номер столбца верхнего левого угла, а также номер строки и номер столбца правого нижнего угла. В пятом необязательном аргументе можно определить символ, который будет использоваться для рисования сторон прямоугольника, а в шестом аргументе типа Boolean можно указать, следует ли выполнять заливку прямоугольника (тем же самым символом, который используется для рисования сторон).

В первом вызове третий и четвертый аргументы передаются путем распаковывания двухэлементного кортежа (ширина и высота), который возвращает функция CharGrid. get_size . По умолчанию, прежде чем вывести содержимое сетки, функция CharGrid. render очищает экран, но чтобы предотвратить это, ей можно передать значение False, что и было сделано в данном случае. Модуль CharGrid начинается точно так же, как и модуль TextUtil -со строки "shebang", с упоминания об авторских правах и лицензионном соглашении.

В строке документирования модуля приводится его описание, вслед за которым находятся доктесты, упомянутые выше. Следующий ниже программный код начинается двумя инструкциями импорта: одна импортирует модуль sys, а другая - модуль subprocess. В модуле используется две тактики обработки ошибок. Некоторые функции имеют параметр типа char, то есть фактически строку, содержащую единственный символ. Нарушение этого требования рассматривается как фатальная ошибка программирования, поэтому для проверки длины аргументов используется инструкция assert.

Передача номеров строк и столбцов со значениями, выходящими за пределы сетки, хотя и считается ошибкой, но рассматривается как нормальная ситуация, поэтому в подобных случаях возбуждается наше собственное исключение. Ни одна из функций в модуле, возбуждающих исключения, не возбуждает исключение RangeError, они всегда возбуждают конкретное исключение в зависимости от того, номер строки или столбца вышел за пределы сетки.

Но, используя существующую иерархию исключений, мы даем пользователю модуля возможность выбирать, будет ли он обрабатывать конкретные исключения или перехватывать их по базовому классу RangeError. Назначение остальных переменных будет поясняться по мере того, как мы будем сталкиваться с ними. Очистка экрана консоли в разных системах выполняется по-разному. В Windows необходимо выполнить программу cmd. exe с соответствующими аргументами, а в большинстве систем UNIX запускается программа clear.

Функция subprocess. call из модуля subprocess позволяет запускать внешние программы, поэтому мы можем использовать ее для очистки экрана с учетом особенностей системы. Строка sys. platform хранит имя операционной системы, под управлением которой выполняется программа, например, "Win32" или "linux2". Недостаток такого подхода заключается в том, что, даже зная, что тип платформы не изменится в процессе работы программы, мы все равно вынуждены выполнять проверку при каждом вызове функции.
Навигация: 1 2 3 4
 
 
© Copyright