Библиотека задач по Python | тесты, код, задания – Telegram
Библиотека задач по Python | тесты, код, задания
6.54K subscribers
851 photos
14 videos
614 links
Задачи и тесты по Python для тренировки и обучения.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
У вас есть сервис на 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
👍3211
Принцип открытости/закрытости (OCP)

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

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

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

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

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

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

Библиотека задач по Python
👍4
Какое утверждение верно для работы с замыканиями и областями видимости в Python при использовании nonlocal и global?

👾 — nonlocal и global изменяют значение переменной только в момент объявления функции, а не при выполнении
👍 — nonlocal ищет переменную в ближайшей внешней области видимости, не включая глобальную, и изменяет её по ссылке
🥰 — global и nonlocal идентичны в поведении, но nonlocal можно использовать только внутри вложенных функций
⚡️ — Если переменная помечена как nonlocal, Python создаёт новую переменную в замыкании, не затрагивая внешнюю

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
В FastAPI сервисе при нагрузке появляются предупреждения Unclosed client session/connector is closed, растёт число открытых файловых дескрипторов. Вы используете aiohttp для внешних HTTP-запросов. Какой подход корректный?

👾 — Создавать aiohttp.ClientSession() на каждый запрос и не закрывать — пусть GC разберётся
👍 — Создать один ClientSession на старте приложения (lifespan), переиспользовать во всех хэндлерах и корректно закрыть на shutdown
🥰 — Заменить на синхронный requests внутри run_in_executor — тогда дескрипторы не утекут
— Для каждого запроса создавать новый TCPConnector(force_close=True) и сразу закрывать сессию

Библиотека задач по Python
👍10
Что делает функция oct()?

Функция oct() в Python принимает один аргумент: число — целое число (двоичное, десятичное или шестнадцатеричное) или объект, который должен реализовать метод index() для возврата целого числа. Функция возвращает строку с восьмеричным представлением числа.

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

👾 — ypyP 1
👍 — ypyP 3
🥰 — y 3
⚡️ — y1

Библиотека задач по Python
🥰28👾42👍1
Что выведет код?

👾 — True
👍 — False
🥰 — None
⚡️ — Error

Библиотека задач по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👾343👍1
«Этот манёвр будет стоить нам 51 год...»

Можно бесконечно гуглить решения задач на StackOverflow, а можно один раз разобраться в алгоритмах и архитектурных шаблонах. Это сэкономит вам годы в карьере и сотни часов на рефакторинг.

Успейте купить курсы Proglib Academy по старой стоимости до понедельника:

— Разработка ИИ-агентов
— Математика для разработки AI-моделей
— ML для старта в Data Science
— Математика для Data Science
— Специалист по ИИ
— Алгоритмы и структуры данных
— Программирование на Python
— Основы IT для непрограммистов
— Архитектуры и шаблоны проектирования

Успеть забрать со скидкой

⚠️ Дедлайн — 19 января
Что выведет код сверху?

👾 — TypeError
👍 — apple banana
🥰 — 4 3
⚡️ — {"apple": 4, "banana": 3} {"apple": 4, "banana": 3}

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

👾 — 3:27
👍 — 2:8
🥰 — 8
⚡️ — 27

Библиотека задач по Python
🥰26👾3👍21
Зачем нужен wraps?

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

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

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


Библиотека задач по Python
👍41
Задача: научить LLM отвечать по вашим PDF-файлам

23 января в 19:00 разберём практические подходы RAG и дообучения на открытом уроке к курсу «Разработка ИИ агентов». Узнаем, как на Python собрать систему, которая не просто имитирует общение, а ищет факты в закрытых документах.

Спикер — Игорь Стурейко, тимлид в «Газпроме» и эксперт с 20-летним опытом в ML. Игорь подготовил видео о том, какие навыки нужны разработчику для создания автономных ИИ-систем сегодня.

На уроке обсудим алгоритмы:

— индексация текстов в векторные базы данных;
— использование LangChain для создания агентных цепочек;
— выбор между контекстным поиском и Fine-tuning.

📅 Когда: 23.01 в 19:00 МСК

Узнать подробности