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

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Объединение словарей

Допустим, у вас есть словарь со значениями по умолчанию, и вы хотите обновить его параметры. До Python 3.9 лучшим вариантом было скопировать словарь по умолчанию, а затем использовать метод .update().

Обратите внимание, что порядок имеет значение. В данном случае значение where из params переопределяет значение по умолчанию, как и должно быть.
Регулярные выражения в Python

re. search()

Этот метод возвращает совпадающую часть строки и останавливается сразу же, как находит первое совпадение. Таким образом, его можно использовать для проверки выражения, а не для извлечения данных.

Синтаксис: re. search(шаблон, строка)

Возвращаемое значение может быть либо подстрокой, соответствующей шаблону, либо None, если такой подстроки не окажется.
Задачи на алгоритмы пугают многих разработчиков своей сложностью. Григорий Шовкопляс, преподаватель из ИТМО, считает, что все не так уж страшно. Специально для канала Технострим он пошагово показал, как решать на 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