TGViewer
Channel Public Channel
Python задачи и вопросы

Python задачи и вопросы

@py_quiz

Задачи и вопросы с собеседований по python разного уровня сложности

По рекламе: @cyberJohnny
Subscribers
1.12K
Photos
465
Videos
0
Links
146
Recent Posts 20 shown
Post #1851 43
Как в FastAPI (SQLAlchemy 2.0 async) корректно обеспечить «сеанс на запрос» с авто-rollback при исключении и гарантированным закрытием соединения?

👾 — Создать один глобальный AsyncSession и шарить его между хэндлерами
👍 — Использовать зависимость с yield
🥰 — Открывать/закрывать сессию вручную в каждом хэндлере try/except
⚡️ — Класть сессию в app.state на старте приложения и переиспользовать

Библиотека задач по Python
Post #1847 146
Сервис создаёт миллионы однотипных небольших объектов (несколько фиксированных полей). Память растёт, GC давит. Что изменить в моделях, чтобы существенно снизить footprint и ускорить доступ к атрибутам?

👾 — Отключить GC через gc.disable()
👍 — Хранить данные в dict вместо объектов
🥰 — Использовать slots или @dataclass(slots=True) для моделей
⚡️ — Увеличить sys.setrecursionlimit()

Библиотека задач по Python
Post #1846 133
Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇
Post #1845 152
Какое утверждение о системе зависимостей FastAPI корректно при использовании Depends, BackgroundTasks и ContextVar в асинхронном контексте?

👾 — Все зависимости в FastAPI создаются один раз при запуске приложения и переиспользуются между запросами, если они объявлены через Depends
👍 — Использование ContextVar внутри зависимости гарантирует корректное изолированное состояние на каждый HTTP-запрос, даже при высокой степени параллелизма
🥰 — BackgroundTasks могут быть объявлены внутри зависимости, но они не будут выполнены, если не проброшены явно в APIRouter
⚡️ — Асинхронные зависимости с yield (context managers) поддерживаются FastAPI только при использовании Python 3.12 и выше
Библиотека задач по Python
Post #1844 122
Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇
Post #1843 111
Uvicorn/FastAPI-сервис использует asyncio и сторонние библиотеки, под капотом создающие потоки. Для CPU-bound задач вы подключили multiprocessing, но периодически ловите подвисания/краши при старте воркеров. Какой способ старта процессов корректнее выбрать?

👾 — fork — самый быстрый, поэтому всегда лучший выбор на Linux
👍 — spawn — запуск чистого интерпретатора, безопасен при наличии потоков/мьютексов у родителя
🥰 — forkserver — ничего не меняет относительно потоков, просто сложнее
⚡️ — Любой — способы эквивалентны на Linux

Библиотека задач по Python
Post #1842 93
Когда название файла уже само по себе считается техническим долгом 😧
Post #1841 100
Есть ли в Python сборщик мусора, и, если есть, как он работает?

Стандартный интерпретатор использует несколько алгоритмов.

🧹 Подсчёт ссылок. Каждый объект в Python содержит внутренний счётчик ссылок. Когда он падает до нуля, это означает, что на объект больше нет ссылок, его можно удалить. Главный недостаток этого алгоритма — не умеет определять циклические ссылки.
🧹 Алгоритм поиска циклов. Реализован в модуле gc и активируется время от времени, а не постоянно. Если коротко, этот алгоритм периодически ищет объекты, которые ссылаются только друг на друга и не доступны извне. Объекты, признанные недостижимыми, удаляются.
Также стоит добавить, что циклический сборщик мусора делит объекты на три поколения в зависимости от того, как долго они существуют в памяти. Новые объекты помещаются в первое поколение. Если они сохраняются после очередного процесса сбора мусора, то перемещаются в следующее по старшинству поколение. Объекты в более старших поколениях проверяются реже.

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

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

Библиотека задач по Python
Post #1838 94
Что означает RPO?

👾 — Максимально допустимая длительность простоя
👍 — Цель по времени восстановления сервиса
🥰 — Максимально допустимая потеря данных во времени
⚡️ — Среднее время до отказа

Библиотека задач по Python
Post #1837 94
Как поддерживать «прибавить x на [l,r]» и «минимум на [l,r]» за O(log n)?

👾 — Префиксные суммы
👍 — Дерево Фенвика
🥰 — Сегментное дерево с ленивой пропагацией
⚡️ — Несортированная куча

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

👾 — 0 1
👍 — 0
🥰 — 1

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

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

Библиотека задач по Python
Post #1831 87
Что даёт asyncio.TaskGroup по сравнению с gather?

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

👾 — Moscow
👍 — 12
🥰 — Saint Petersburg
⚡️ — Nizhny Novgorod
Библиотека задач по Python
Post #1827 93
Чем корректно отдавать большой поток данных?

👾 — Response с JSON
👍 — StreamingResponse
🥰 — FileResponse всегда загружает весь файл в память
⚡️ — HTMLResponse

Библиотека задач по Python
Post #1824 109
Какое утверждение о GIL (Global Interpreter Lock) в CPython верно?

👾 — Позволяет многопоточность на многоядерных CPU
👍 — Отсутствует в CPython
🥰 — Сериализует выполнение байт-кода в одном потоке
⚡️ — Ускоряет выполнение async-функций
Библиотека задач по Python
Post #1822 107
Что выведет код сверху?

👾 — True
👍 — False
🥰 — Error
⚡️ — Другое

Библиотека задач по Python
Post #1820 93
Вы работаете с высоконагруженным Python-сервисом. При профилировании заметили, что использование list приводит к избыточным копированиям данных и росту потребления памяти. Какой подход будет наиболее правильным для оптимизации?

👾 — Использовать tuple вместо list, так как они быстрее и занимают меньше памяти
👍 — Применить генераторы и итераторы (yield, generator expressions), чтобы обрабатывать данные лениво
🥰 — Хранить данные в глобальной переменной, чтобы избежать повторных аллокаций
⚡️ — Переписать часть логики на Cython, чтобы ускорить операции с массивами
Библиотека задач по Python
Post #1816 101
Что из перечисленного не является типом наследования?

👾 — Двухуровневый
👍 — Многоуровневый
🥰 — Одноуровневый
⚡️ — Многоуровневый
Библиотека задач по Python
Older posts →

About this channel

How can I read @py_quiz without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Python задачи и вопросы: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Python задачи и вопросы have?
Python задачи и вопросы (@py_quiz) has 1.12K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Python задачи и вопросы know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →