Библиотека питониста | Python, Django, Flask
40.3K subscribers
2.8K photos
78 videos
51 files
4.39K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Задачи на алгоритмы пугают многих разработчиков своей сложностью. Григорий Шовкопляс, преподаватель из ИТМО, считает, что все не так уж страшно. Специально для канала Технострим он пошагово показал, как решать на Python задачу динамического программирования о наибольшей общей подпоследовательности так, чтобы написать код с первого раза. Смотрите тут: https://youtu.be/GOF4VUi4nGU

Кстати, Григорий преподает не только в ИТМО, но и в Академии больших данных MADE. Как раз сейчас последние дни приема заявок на бесплатное обучение в этом году https://vk.cc/c4rp1I
💐 Как я провел комплексную автоматизацию тепличного хозяйства: предметная область для IT-менеджеров

Мой опыт внедрения IoT в отечественном аграрном секторе. Роутеры, контроллеры, рассада и теплицы с вайфаем в чистом поле на юге России. Много красивых фоток.

https://proglib.io/sh/G0RYlcSjPo
Использование time.sleep() в threading

Python Logging Cookbook является хорошим примером использования time.sleep(). Модуль логирования logging является потоко-безопасным, поэтому в данном примере он будет полезнее, чем операторы print().

Здесь для создания двух потоков используется модуль Python threading. Также создается объект входа, что будет вводить threadName в stdout. Затем начинаются оба потока и инициируется цикл для каждого входа из главного потока. Для фиксирования пользователя используется KeyboardInterrupt при нажатии ^Ctrl+C.
👍1
Хеширование паролей Python
Для Python 3.x

Здесь пароли будут хешироваться для последующего сохранения в базе данных.

Тут мы будем использовать salt. salt является случайной последовательностью, добавленной к строке пароля перед использованием хеш-функции.

salt используется для предотвращения перебора по словарю (dictionary attack) и атак радужной таблицы (rainbow tables attacks).
Использование Event.wait() в многопоточности Python. 1 ч.

Модуль threading предоставляет Event(), которого можно использовать как time.sleep(). Однако преимущество Event() в том, что он более отзывчив. Причина в том, что когда событие установлено, программа сразу выходит из цикла. В Python с time.sleep() коду надо будет подождать завершения вызова sleep() до выхода из потока.
Всем привет!
Мы сделали анонимный сервис, который отбирает вакансии по вашим интересам.
Настройте личные фильтры: локация, точный технологический стек, и, конечно, не забудьте о деньгах.

Все самые подходящие предложения рынка – в @GetMeIT_bot
Функция sorted

Функция позволяет быстро отсортировать список или массив. Легкая, простая, полезная в повседневных задачах. Есть логический параметр reverse позволяющий инвертировать сортировку.
👍1
Аннотация типов

Дает нам возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #

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

А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде
Использование Event.wait() в многопоточности Python. 2 ч.

Причина, по которой здесь лучше использовать wait() в том, что он не блокируется, в то время, как time.sleep() блокируется. Это значит, что при использовании time.sleep() вы заблокируете выполнение основного потока, пока тот будет ждать завершения вызова sleep(). wait() решает данную проблему.

Затем устанавливаются циклы для проверки, настроено ли событие event. Если это не так, тогда код выведет сообщение и немного подождет перед повторной проверкой. Для установки события можно воспользоваться комбинацией ^Ctrl+C. Как только событие установлено, worker() вернется, и цикл оборвется, завершив программу.
Примеры использования модуля os в Python

os.chdir() и os.getcwd()

Функция os.chdir позволяет нам вносить изменения в каталоге, который мы в данный момент используем в сессии.

Если вам нужно знать, какой путь вы в данный момент используете, для этой нужно вызвать os.getcwd(). Указанный код демонстрирует нам, что мы открыли директорию по умолчанию в Пайтоне, после запуска данного кода в IDLE.

После этого мы изменили папки, при помощи os.chdir().
Как обрабатывать исключения?

Обработка исключений в Пайтон – это очень просто. Потратим немного времени и напишем несколько примеров, которые их вызовут. Мы начнем с одной из самых элементарных проблем: деление на ноль.

Если мы обратимся к урокам элементарной математики, то вспомним, что на ноль делить нельзя. В Пайтоне данная операция вызовет ошибку, как мы можем видеть в примере выше. Чтобы поймать ошибку, мы завернем операцию в оператор try/except.
PEP 665: Определение требований к установке для проектов Python.

https://proglib.io/w/f5f85694
Robust Python: Write Clean and Maintainable Code (2021)
Автор: Patrick Viafore
Количество страниц: 380

Кажется, что ваши проекты Python становятся все больше и больше? Вы чувствуете боль, когда ваша кодовая база расширяется и становится все сложнее отлаживать и поддерживать? Python - это простой язык для изучения и использования, и это также означает, что системы могут быстро вырасти за пределы понимания. К счастью, у Python есть функции, которые помогают разработчикам преодолеть проблемы с поддержкой кода.

Скачать книгу
Класс collections.deque

Класс deque реализует двухконечную очередь, которая поддерживает добавление и удаление элементов с обоих концов в течение О(1) времени.

Объекты deque представлены в виде двусвязных списков, что дает им превосходную производительность для входящих и выходящих элементов, но при этом у него плохая производительность O(n) при работе со случайно принимаемыми элементами в середине очереди.

В связи с тем, что deque поддерживает вставку и удаление элементов одинаково хорошо, они могут поддерживать и очереди и стеки. collections.deque это отличное решение, если вы ищите структуру данных очереди в Python в стандартной библиотеке.