100 ночей кода – ночь 7

Эту ночь я прослушал немного по теме базовых тэгов HTML. Никогда не ставил себе целью учить специально HTML, периодически какие-то кусочки его хватал тут и там. Начинается Html5 с написания тэга “!DOCTYPE html”, потом собственно тэг html, далее head и body. Внутри body можно поделить всё на виртуальные сегменты с тэгом div, а также разными тэгами форматирования, навроде ul для ненумерованного списка…

Помимо HTML, я также прорешал задачки из старых записей, сохранённых в https://ankiweb.net. Оказалось, я ещё помню как написать декоратор вручную.

100 ночей кода – ночь 3

Этой ночью по ходу курса погрузился в шаблоны Jinja. Можно опрелить 1 шаблон, который будет повторяться на протяжении всего веб-сайта. А потом можно просто добавлять к нему кусочки через комбинацию {% extends test.html%}.

В шаблоны Jinja я уже ранее погружался и записал небольшой конспект по тому, как они работают в моей базе знаний.

По ходу написания шаблонов я отметил, что PyCharm понимает {% %} комбинацию в HTML-файле и автоматически закрывает открытые скобки с процентными знаками. Удобно!

100 ночей кода – ночь 2

Создал виртуальную папку под веб-приложение, разбираюсь со структурой папок и файлов во Flask. Можно весь сайт запихать в 1 файл, а можно разнести на множество. Тогда в каждом из множества файлов нужно предусмотреть импорт кусочков-соседей.

Это уже не первый мой забег с Flask, до этого я начинал с хорошим пошаговым пособием.

C Pycharm Pro процесс создания шаблона несколько упростился – IDE сразу создаёт готовое “Hello World” веб-приложение, остаётся его лишь немного перестроить под множество файлов.

Все шаги по установке пакетов Flask и созданием файлов-папой записаны мной ранее в базе знаний.

100 ночей кода – ночь 1

python night

У меня всегда есть ряд дел, которые всё откладываются. Среди таких дел – навык “стабильности” в работе с блогом и желание накодить что-то интересное. Так началась первая из 100 ночей кода…

100 дней веб

[Python] – трюк с groupby

Дана строка текста “bbbbcccABBCcAD”, нужно вернуть список элементов, таких, чтобы у каждого элемента не было одинаковых с ним соседей. При этом нужно сохранить порядок элементов.

Решение:

from itertools import groupby
print([u for (u, _) in groupby(‘bbbbcccABBCcAD’)]) # -> [‘b’, ‘c’, ‘A’, ‘B’, ‘C’, ‘c’, ‘A’, ‘D’]

Объяснение:

Если бы я раньше получил такую задачку, то попробовал бы использовать множество set(). Но в множестве нет сохранения порядка элементов, и фильтрация идёт на уникальность всех элементов, а не только соседних. С другой стороны, itertools.groupby() принимает на вход любой объект-массив iterable, находит в нём одинаковые соседние элементы и возвращает их в кортеже (элемент, код группировки). Код группировки выкидываем (присвоив его бросовой переменной _), получаем искомый список.

Параллельные вычисления – инструменты

В языке Python присутствует ряд инструментов по написанию асинхронного кода. Я хочу рассмотреть их концептуально.

Концепции