Библиотека питониста | Python, Django, Flask
40.3K subscribers
2.8K photos
79 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
Привет, Username! Приглашаем тебя на новый хакатон Цифрового Прорыва на тему "Транспорт и логистика"!

Для тебя мы подготовили крутецкие кейсы от Росатома, Ростелекома, Транспортных инноваций Москвы, международного аэропорта Шереметьево, Accenture и др.!

Участвовать можно онлайн из любой точки России, либо в специальных оффлайн-коворкингах (см. список доступных на сайте).

Успей собрать команду 3-5 человек (или присоединиться к имеющимся), выбрать кейс и побороться за призовой фонд до 4.500.000 руб. 🚀🚀🚀

Регистрируйся прямо сейчас: https://proglib.io/w/f5d2f939
Интересная пасхалка

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

Но будет вызвано исключение, которое говорит "not a chance", что означает "ни единого шанса". Однако есть ещё один интересный момент, а именно — исходный код этого модуля.

Оказывается, интерпретатор CPython сначала запускает файл future.c, когда встречается импорт этого модуля. А само это исключение реализовано на этой строчке.
Валидаторы данных

Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.

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

Помимо этого, validators позволяет также работать с ipv4, ipv6, mac адресами и многим другим. В итоге, имеем лаконичный и простой модуль с хорошим функционалом.
Рекомендуем телеграм канал для разработчиков и тому, кто интересуется веб-технологиями! 👩‍💻👨‍💻

@thirteen_vlad - канал бекенд разработчика, где middle python developer делиться о своем пути к senior developer.

Пару слов от автора канала: Всем привет 👋, меня зовут Влад. Пару слов, зачем я решил завести Telegram-канал:
• Во-первых, недавно я создал свой курс по Flask и хорошо бы иметь место для живого общения и фидбека 🙊
• Во-вторых, надеюсь, что соберём интересную аудиторию, в которой можно делиться идеями и помогать друг другу 🤝
• Ну и, в-третьих, у меня уже есть некоторый опыт в backend-разработке, поэтому, я думаю, что могу поделиться с вами чем-то полезным и рассказать о своём пути 🚀
Кроме того, отвечаю на вопросы ребят 👨‍💻👩‍💻, и в целом делюсь вещами, с которыми столкнулся при изучении новых технических штук 🛠. Подписывайтесь, надеюсь, что будет полезно и весело!🤓🚀
Create GUI Applications with Python & Qt5 (2020)
Автор: Martin Fitzpatrick
Количество страниц: 791

Создание настольных приложений не должно быть трудным. Используя Python и Qt5, вы можете создавать полнофункциональные настольные приложения за считанные минуты. Начиная с самых основ, эта книга познакомит вас с ключевыми аспектами работы с PyQt5, которые вы можете использовать для создания реальных приложений.

Скачать книгу
Аннотация типов

Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой typing, в которой содержались структуры нужные для создания дженериков для аннотирования переменных. Тогда синтаксис аннотирования работал при инициализации переменных. В последствии в версии 3.6 эта возможность была расширена и стало возможно объявлять типы переменных вообще в любом месте кода.

В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур typing'а (List, Dict, Tuple...).

И наконец в 3.10 на замену перечисления возможных принимаемых типов через typing.Union пришел опреатор | (or). Также в 3.10 был изменен синтаксис создания тайпалиасов, чтобы разграничить с присваиванием переменной, теперь лучше это делать непосредственно через TypeAlias.
Интеграция интерпретатора Lua в Python с помощью lupa.

https://proglib.io/w/a5da51f0
Примите участие в первом хакатоне от аудиосервиса СберЗвук с общим призовым фондом 500 000 рублей.

С 30 по 31 октября пройдут SberZvuk Tech Days в гибридном формате: 100 человек получат возможность посоревноваться в Москве в офлайне и 50 участников со всей России смогут принять участие онлайн.

Основная задача хакатона — разработать UGC-фильтр с возможностью автоматической фильтрации пользовательского видеоконтента на предмет соответствия требованиям и правилам.

К участию приглашаются python-разработчики middle и senior уровня.

Регистрация до 24 октября: https://bit.ly/3mMQQaI
Импорт антигравитации

Достаточно старая, но все же интересная пасхалка: если в коде прописать import antigravity, то при запуске скрипта откроется страница в браузере, которая содержит шутку про то, насколько же всё-таки язык простой.
🛠 Всё, что нужно знать начинающему о Git: рассмотрим за 15 минут

Распределенная система контроля версий Git – популярный инструмент для координации параллельной работы и управления проектами в мире ИТ. Умение им пользоваться хотя бы на уровне основных команд необходимо даже начинающему разработчику.

https://proglib.io/sh/LdDc0FGSPp
Многопоточность

В модуле threading новый поток выполнения может начинаться с нового threading.Thread и присвоения ему функции для выполнения.

Параметр target ссылается на функцию (или вызываемый объект), который будет работать. Нить не начнет выполнение до start, также не будет вызываться Thread объекта.

Когда my_thread завершается, вызов start выкинет исключение RuntimeError. Если вы хотите запустить Thread в фоновом режиме, то передавайте daemon=True или установите my_thread.daemon в True перед вызовом start().
Что выведет код?
sum(bytes(b"abCD")) - sum(bytes(b"ABcd"))
Что выведет код?
d1 = {}
d2 = {}
d1.get("x", 2)
d2.setdefault("x", 2)
print(d1 == d2)