Библиотека задач по Python | тесты, код, задания
6.6K subscribers
830 photos
13 videos
544 links
Задачи и тесты по Python для тренировки и обучения.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/9f7384d6

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
🤔 Как ускорить браузер

Закрой все вкладки со словами «MacBook», «купить ноутбук», «ноут в рассрочку». Потому что у нас есть решение лучше.

🔥 Proglib разыгрывает MacBook Pro 14. Формула простая: покупаешь любой курс до 15 ноября → учишься 2 недели → пишешь куратору #розыгрыш

Пока у тебя открыто 147 вкладок с ценами, кто-то уже прокачивает скилы и может забрать приз.

👉🏻 Выбрать курс для участия
Что выведет код?

👾 — 9
👍 — [9, 1, 3]
🥰 — [3, 6]
⚡️ — Error

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
Что даёт asyncio.TaskGroup по сравнению с gather?

👾 — Запускает задачи параллельно и скрывает исключения
👍 — При первом исключении отменяет остальные, дожидается их и выбрасывает ошибку после with
🥰 — Выполняет задачи строго последовательно
⚡️ — Требует вручную вызывать cancel() для каждой задачи при ошибке

Библиотека задач по Python
👍4
Как корректно задать мутируемый дефолт в dataclass?

👾 — items: list[str] = []
👍 — items: list[str] = field(default_factory=list)
🥰 — items как tuple, а в post_init конвертировать в list
⚡️ — Общая для всех экземпляров переменная класса items = []

Библиотека задач по Python
👍7
⚡️ Механизм запущен, часики тикают

Прямо сейчас кто-то уже купил курс со скидкой 40%, открыл первый урок и уже на пути к MacBook Pro 14.

А ты всё ещё читаешь этот пост...

Дедлайны не ждут:

31 октября — скидка 40% сгорает
15 ноября — розыгрыш MacBook

🎯 Правила участия:

→ купить любой курс до 31 октября
→ отучиться 2 недели
→ написать #розыгрыш куратору

🕊️ Не упусти свой шанс
Зачем использовать contextvars.ContextVar вместо threading.local в async-коде?

👾 — Потому что быстрее при тех же семантиках
👍 — Даёт изоляцию на задачу: значение «течёт» через await внутри Task, но не между задачами/потоками; threading.local изолирует только по потоку и протекает между корутинами
🥰 — Автоматически сериализует состояние между процессами
⚡️ — Разрешает безопасно менять глобальные переменные

Библиотека задач по Python
👍4
Что делает __slots__ в классе?

👾 — Делает экземпляры неизменяемыми и хешируемыми
👍 — Убирает dict у экземпляров и запрещает произвольные атрибуты, оставляя только перечисленные слоты (меньше памяти)
🥰 — Превращает класс в dataclass
⚡️ — Включает GIL-оптимизации для всех операций

Библиотека задач по Python
👍15
Halloween Special — последний день магии! 👻

Успевай сегодня купить курсы со скидкой 40%!

А также участвуй в розыгрыше MacBook Pro 14 💻

После полуночи останется только тыква 🎃

🔮 Открой портал и выбери курс
Как в Python 3.11+ выполнить блокирующую функцию из async-кода без доступа к loop?

👾 — await func()
👍 — await asyncio.to_thread(func, *args)
🥰 — time.sleep() внутри корутины
⚡️ — await asyncio.sleep(0) перед вызовом

Библиотека задач по Python
👍11
Как перезагрузить импортированный модуль?

Чтобы перезагрузить импортированный модуль в Python, вы можете использовать функцию reload() из модуля importlib.

Замените module_name на фактическое имя модуля, который вы хотите перезагрузить.
Это может быть полезно при разработке и тестировании модулей, но не рекомендуется использовать в производственном коде без серьезных причин.


Библиотека задач по Python
Что выведет код?

👾 — ['Hello', 'World']
👍 — ['HELLO', 'WORLD']
🥰 — ['None', 'None']

Библиотека задач по Python
👾49👍21😁1
Что выведет код сверху?

👾 — 20
👍 — 45
🥰 — 54
⚡️ — 4.5

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👾571
Чем отличается copy.copy от copy.deepcopy?

👾 — Обе делают глубокую копию
👍 — copy копирует только контейнер, вложенные объекты — по ссылке; deepcopy рекурсивно копирует всё
🥰 — Обе лишь увеличивают счётчик ссылок
⚡️ — deepcopy быстрее, поэтому всегда лучше

Библиотека задач по Python
👍261
Что делает yield from subgen?

👾 — Просто вызывает подгенератор и возвращает список
👍 — Делегирует итерацию/send/throw/close подгенератору и получает его return как результат (PEP 380)
🥰 — Запускает подгенератор параллельно в другом потоке
⚡️ — Гарантирует выполнение в отдельном процессе

Библиотека задач по Python
👾4👍2
Что даёт @dataclass(frozen=True)?

👾 — Глубоко делает неизменяемыми и все вложенные объекты
👍 — Запрещает присваивания атрибутов (иммутабельность на уровне класса) и при eq=True по умолчанию делает экземпляр хешируемым
🥰 — Автоматически копирует все мутируемые аргументы
конструктора
⚡️ — Включает slots и уменьшает память

Библиотека задач по Python
👍132
Что делает asyncio.gather(..., return_exceptions=True)?

👾 — Отменяет все задачи при первом исключении
👍 — Возвращает исключения как элементы результата, не прерывая остальные задачи
🥰 — Полностью скрывает исключения и возвращает None
⚡️ — Автоматически перезапускает упавшие задачи

Библиотека задач по Python
👍11👾2
Зачем нужен from __future__ import annotations?

👾 — Включает проверку типов в рантайме и кидает ошибки при несоответствии
👍 — Откладывает вычисление аннотаций (хранятся как строки), упрощая forward refs и циклические импорты
🥰 — Автоматически импортирует typing и делает аннотации обязательными
⚡️ — Превращает аннотации в комментарии и удаляет их из annotations

Библиотека задач по Python
👍8🥰3
Почему нельзя вызывать asyncio.run() внутри уже работающего event loop (например, в Jupyter/ASGI)?

👾 — Потому что asyncio.run требует Python 3.12+
👍 — У него свой цикл событий; внутри активного цикла бросит RuntimeError. Нужно await корутину или создавать задачу (asyncio.create_task)
🥰 — Он автоматически вкладывает циклы друг в друга
⚡️ — Это всего лишь алиас loop.run_until_complete

Библиотека задач по Python
👍9
🖤 ЧЕРНАЯ ПЯТНИЦА: СКИДКА 40%

Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎

🔥 Курсы со скидкой 40% до конца ноября:

🐍 Python
📐 Математика
🤖 AI
🔢 Алгоритмы и структуры

Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈
Как внутри вложенной функции изменить переменную из внешней (но не глобальной) области?

👾 — global x
👍 — nonlocal x
🥰 — Просто x = ... — изменит замыкание автоматически
⚡️ — locals()['x'] = ...

Библиотека задач по Python
👍1811