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

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

Статистика

Задачи и вопросы с собеседований по python разного уровня сложности По рекламе: @cyberJohnny

Последний пост
5 авг.
Последнее чтение
17:42
Постов за неделю
0
Всего постов
20
Тип
открытый
Язык
русский
Категория
Технологии
В каталоге с
13 авг.
Подписчики
1 131
0 за 4 дн.
Сутки
0
0,00%
Неделя
 
Месяц
 
Просмотров на пост
81
20 постов
Вовлечённость
7,2%
к подписчикам
Постов в день
0,0
всего 20
Упоминаний
0
каналов
Охват размещения
оценка
1/24сутки в ленте
61
1/48двое суток
69
1/72трое суток
75

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • Сервис создаёт миллионы однотипных небольших объектов (несколько фиксированных полей). Память растёт, GC давит. Что изменить в моделях, чтобы существенно снизить footprint и ускорить доступ к атрибутам? 👾 — Отключить GC через gc.disable() 👍 — Хранить данные в dict вместо объектов 🥰 — Использовать slots или @dataclass(slots=True) для моделей ⚡️ — Увеличить sys.setrecursionlimit() Библиотека задач по Python

  • Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇

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

  • Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇

  • Uvicorn/FastAPI-сервис использует asyncio и сторонние библиотеки, под капотом создающие потоки. Для CPU-bound задач вы подключили multiprocessing, но периодически ловите подвисания/краши при старте воркеров. Какой способ старта процессов корректнее выбрать? 👾 — fork — самый быстрый, поэтому всегда лучший выбор на Linux 👍 — spawn — запуск чистого интерпретатора, безопасен при наличии потоков/мьютексов у родителя 🥰 — forkserver — ничего не меняет относительно потоков, просто сложнее ⚡️ — Любой — способы эквивалентны на Linux Библиотека задач по Python

  • Когда название файла уже само по себе считается техническим долгом 😧

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

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

  • Что означает RPO? 👾 — Максимально допустимая длительность простоя 👍 — Цель по времени восстановления сервиса 🥰 — Максимально допустимая потеря данных во времени ⚡️ — Среднее время до отказа Библиотека задач по Python

  • Как поддерживать «прибавить x на [l,r]» и «минимум на [l,r]» за O(log n)? 👾 — Префиксные суммы 👍 — Дерево Фенвика 🥰 — Сегментное дерево с ленивой пропагацией ⚡️ — Несортированная куча Библиотека задач по Python

  • Что выведет код сверху? 👾 — 0 1 👍 — 0 🥰 — 1 Библиотека задач по Python

  • Что выведет код сверху? 👾 — TypeError 👍 — apple banana 🥰 — 4 3 ⚡️ — {"apple": 4, "banana": 3} {"apple": 4, "banana": 3} Библиотека задач по Python

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

  • Что выведет код? 👾 — Moscow 👍 — 12 🥰 — Saint Petersburg ⚡️ — Nizhny Novgorod Библиотека задач по Python

  • Чем корректно отдавать большой поток данных? 👾 — Response с JSON 👍 — StreamingResponse 🥰 — FileResponse всегда загружает весь файл в память ⚡️ — HTMLResponse Библиотека задач по Python

  • Какое утверждение о GIL (Global Interpreter Lock) в CPython верно? 👾 — Позволяет многопоточность на многоядерных CPU 👍 — Отсутствует в CPython 🥰 — Сериализует выполнение байт-кода в одном потоке ⚡️ — Ускоряет выполнение async-функций Библиотека задач по Python

  • Что выведет код сверху? 👾 — True 👍 — False 🥰 — Error ⚡️ — Другое Библиотека задач по Python

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

  • Что из перечисленного не является типом наследования? 👾 — Двухуровневый 👍 — Многоуровневый 🥰 — Одноуровневый ⚡️ — Многоуровневый Библиотека задач по Python

  • Какой тип наследования проиллюстрирован в следующем коде на Python? class A(): pass class B(): pass class C(A,B): pass 👾 — Многоуровневое наследование 👍 — Множественное наследование 🥰 — Иерархическое наследование ⚡️ — Одноуровневое наследование Библиотека задач по Python