Shanraq.org Shanraq.org

Архив публикаций

среда, 9 сентября 2026

среда

сентябрь 2026
пнвтсрчтптсбвс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Выделенные дни — те, в которые что-то опубликовано; их можно нажать.

IT

Зачем pandas, если есть списки: что показал замер

Двадцать четвёртый урок курса по Python. Модуль про pandas начинается с вопроса, с которого и должен: стоит ли он того. Отвечает замер, а не вера. Где pandas быстрее в сорок раз, где всего вдвое, где он медленнее обычного цикла, сколько стоит памяти — и правило, когда таблица уже нужна.

IT

Расписание: аргументы, журнал, замок и код возврата

Двадцать третий урок курса по Python. Программа, которая работает ночью без вас: аргументы вместо правки кода, журнал с уровнями вместо `print`, замок против двух одновременных запусков и код возврата, который единственный и читает планировщик. Плюс cron, launchd и systemd — строкой каждый.

IT

SQL из Python: `GROUP BY`, `JOIN` и пустой ответ, который не ноль

Двадцать второй урок курса по Python. База считает сама: `GROUP BY` даёт по строке на валюту, `JOIN` подставляет названия из второй таблицы, а месяц — это группа из первых семи символов даты. Плюс подвох: `avg` по пустому ответу возвращает не ноль, а `None`.

IT

SQLite: история вместо перезаписанного файла, `?` вместо склейки

Двадцать первый урок курса по Python. База вместо файла: строку добавляют, вчерашние остаются, а повторный запуск дня не плодит дубли. Плюс два измеренных подвоха: склейка значения в запрос вернула всю таблицу вместо одной валюты, а закрытие без `commit` потеряло запись.

IT

Вежливость к чужому серверу: таймаут, повтор с отступом и кеш

Двадцатый урок курса по Python. Три вещи, из которых состоит вежливость к чужому серверу: таймаут — не ждать вечно, повтор с удвоением паузы — не бить лежачего, кеш — не спрашивать дважды. Измерено на своём сервере: четыре чтения, один запрос.

IT

Разбор XML: дерево вместо строки, `None` вместо тега и адрес перед именем

Девятнадцатый урок курса по Python. Тот же ответ Нацбанка, но читает его разборщик: 39 валют, курс по имени тега, а не по кускам строки. Плюс два подвоха: `find` для отсутствующего тега возвращает `None`, а тег с пространством имён по короткому имени не находится вовсе.

IT

HTTP из Python: статус, байты и два разных «не получилось»

Восемнадцатый урок курса по Python. Запрос к Нацбанку: 200, `text/xml`, 11 407 байт — и это `bytes`, а не строка. Плюс разница, из-за которой рушится обработка ошибок: `HTTPError` — сервер ответил «нет», `URLError` — ответа не было вовсе.

IT

Свой модуль и пакет: `import`, `__name__` и файл, который подменил стандартный

Семнадцатый урок курса по Python. Сводка выросла до одного длинного файла, и пора разложить её по именам. `import` выполняет чужой файл целиком, `__name__` отличает модуль от запущенного, а свой `csv.py` рядом с программой молча заменяет стандартный.

IT

Итераторы и генераторы: 800 984 байта против 208

Шестнадцатый урок курса по Python. Сто тысяч квадратов списком занимают почти четыре мегабайта, генератором — 376 байт: измерено, вместе со всеми числами. Разница не в том, как считать, а в том, когда появляются значения. Плюс главная ошибка: генератор одноразовый, и второй проход по нему тихо даёт пустоту.

IT

Множества: `&`, `-`, `|` и то, чего нет во второй выгрузке

Пятнадцатый урок курса по Python. Из пяти названий в списке разных — четыре: множество съедает повтор молча. Зато три вопроса к двум выгрузкам решаются тремя знаками: `&` — что в обеих, `-` — чего не стало, `|` — всё вместе. Плюс `{}` — это пустой словарь, а не пустое множество.

IT

Даты и время: 45 дней, часовой пояс и формат, который читается двумя способами

Четырнадцатый урок курса по Python. Между 15 января и 1 марта — 45 дней, и считает их `timedelta`, а не вы. Плюс два подвоха: `01.02.2026` разбирается двумя форматами без единой ошибки — январём и февралём, — а наивное время нельзя вычесть из осознанного, и Python говорит об этом прямо.