Библиотека задач по Python | тесты, код, задания
6.56K subscribers
846 photos
14 videos
604 links
Задачи и тесты по Python для тренировки и обучения.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Что произойдёт при следующем выражении: a = [1, 2, 3]; b = a; a += [4]?

👾 — a и b будут разными списками
👍 — a будет содержать [1, 2, 3], b — [1, 2, 3, 4]
🥰 — a и b будут ссылаться на один и тот же список: [1, 2, 3, 4]
⚡️ — b станет None

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰27
Что выведет код?

👾 — True
👍 — False
🥰 — Error

Библиотека задач по Python
👍34🥰3👾2
WANTED: PYTHON-ЗАДАЧНИК

Обвиняется в написании слишком чистого кода и любви к сложным алгоритмическим тестам. Мы ищем того, кто создаст золотой стандарт проверки знаний для Python-разработчиков.

Приметы:

— является профи в Python (понимает логику Go или Java);
— умеет придумывать нетривиальные задачи на логику и синтаксис;
— готов делиться экспертизой с большой аудиторией;
— хочет получать честный гонорар за свой опыт.

Твоя награда:

— официальный статус эксперта Proglib Academy;
— быстрое развитие личного бренда;
— участие в крупных образовательных проектах.

Сдаться властям

P.S. Твой коллега пишет безупречные скрипты? Пора его сдать нам.
Что выведет код?

👾 — []
👍 — [2]
🥰 — Error
⚡️ — Другое

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👾29🥰4👍2
Какое из следующих утверждений верно?

👾 — Неприватный метод в суперклассе может быть переопределен
👍 — Метод подкласса может быть переопределен суперклассом
🥰 — Приватный метод в суперклассе может быть переопределен
⚡️ — Переопределение невозможно в Python

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👾122🥰1
Зачем нужен textwrap.dedent()?

Метод textwrap.dedent() в Python удаляет общие отступы из многострочного текста. Это особенно полезно для упрощения форматирования строк, например, в документации или при работе с большими текстовыми блоками.

Библиотека задач по Python
👍4
✍🏻 Что такое wheel и eggs в Python? Какая между ними разница?

Python wheel
— это стандартный формат установки дистрибутивов Python, который содержит все файлы и метаданные, необходимые для установки. Файл WHL также содержит информацию о версиях и платформах Python, поддерживаемых этим файлом. Расширение файла wheel — .whl

Python egg — это сжатый архив ZIP, содержащий исходные файлы приложения Python вместе с метаинформацией о дистрибутиве. Расширение файла egg — .egg

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


Библиотека задач по Python
Почему Flask называют микрофреймворком?

Flask называют «микро», поскольку его основной набор функций относительно ограничен: маршрутизация, обработка запросов и модули разработки — вот и всё, что есть в нём. Многие возможности, такие как ORM, кэширование и аутентификация, были доступны в качестве дополнительных расширений, но конкурирующие фреймворки (например, Django) включали их по умолчанию. Архитектура «небольшое ядро + расширения» делает его «микро-» фреймворком, с которым гораздо проще начать работать и масштабировать.

Библиотека задач по Python
1
Друзья, с наступающим Новым годом! 🎄
Пусть в 2026 собеседования проходят спокойнее и предсказуемее: вопросы — по делу, задачи — решаемые, а фидбек — быстрый и честный. Пусть будет больше приятных разговоров, больше «да» по итогам встреч и больше поводов гордиться собой.

Тепла, здоровья и карьерных побед — с праздником! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩53👍2
В каких ситуациях возникает исключение NotImplementedError?

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

Библиотека задач по Python
👍5
Вы обрабатываете большие массивы числовых данных в Python, и профилирование показывает, что большинство времени тратится на циклы for со встроенными типами. Какой подход наиболее правильный для оптимизации?

👾 — Разбить массивы на списки поменьше и обрабатывать их по частям
👍 — Использовать специализированные библиотеки (например, NumPy), которые выполняют векторные операции вне GIL
🥰 — Переписать цикл на вложенные list comprehension
⚡️ — Принудительно запускать gc.collect() после каждой итерации

Библиотека задач по Python
👍22
В продакшн-сервисе на Python при росте нагрузки CPU-bound задачи (например, обработка изображений) выполняются значительно медленнее, хотя вы используете ThreadPoolExecutor. Почему так происходит и что правильнее сделать?

👾 — В Python потоки работают медленно, лучше перейти на asyncio
👍 — Из-за GIL потоки не дают прироста для CPU-bound задач, лучше использовать ProcessPoolExecutor или multiprocessing
🥰 — Нужно увеличить количество потоков в пуле, чтобы загрузить CPU на 100%
⚡️ — Проблема в сборщике мусора, надо чаще вызывать gc.collect()

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
У вас есть сервис на Python, который должен параллельно обрабатывать CPU-bound задачи (например, шифрование файлов). Какой из подходов обеспечит реальный прирост производительности?

👾 — Использовать threading.Thread для распараллеливания задач
👍 — Применить asyncio и await для конкурентного выполнения
🥰 — Использовать multiprocessing или ProcessPoolExecutor
⚡️ — Запускать задачи в concurrent.futures.ThreadPoolExecutor

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰10
Какое утверждение о системе зависимостей FastAPI корректно при использовании Depends, BackgroundTasks и ContextVar в асинхронном контексте?

👾 — Все зависимости в FastAPI создаются один раз при запуске приложения и переиспользуются между запросами, если они объявлены через Depends
👍 — Использование ContextVar внутри зависимости гарантирует корректное изолированное состояние на каждый HTTP-запрос, даже при высокой степени параллелизма
🥰 — BackgroundTasks могут быть объявлены внутри зависимости, но они не будут выполнены, если не проброшены явно в APIRouter
⚡️ — Асинхронные зависимости с yield (context managers) поддерживаются FastAPI только при использовании Python 3.12 и выше

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👾2
Что выведет код?

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

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2611
Принцип открытости/закрытости (OCP)

Принцип открытости/закрытости (OCP) — один из основополагающих принципов объектно-ориентированного программирования (ООП), сформулированный Бертраном Мейером. Он гласит: Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения.

Иными словами, код должен быть легко расширяемым для добавления новых функций или поведения. Существующий код не должен меняться при добавлении новых функций.

Библиотека задач по Python
Зачем нужен wraps?

Декоратор functools.wraps используется для того, чтобы сохранить информацию о функции-оригинале при создании декоратора.
Когда мы создаем декоратор, он заменяет оригинальную функцию на обернутую. При этом теряется информация о названии функции, docstring и другие атрибуты.

Используя wraps, мы можем сохранить эти атрибуты. Таким образом декорированная функция будет выглядеть как оригинальная для программиста.

Это полезно для отладки и понимания кода. Например, при просмотре стека вызовов будет видно оригинальное имя функции, а не имя декоратора. При использовании help() будет выведен нужный docstring.

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