Python задачи и вопросы
1.24K subscribers
423 photos
1 file
154 links
Задачи и вопросы с собеседований по python разного уровня сложности

По рекламе: @cyberJohnny
Download Telegram
Что из перечисленного не является ключевым словом в языке Python?

👾 — pass
👍 — eval
🥰 — assert
⚡️ — nonlocal

Библиотека задач по Python
Нужно задать таймаут для блока асинхронных операций так, чтобы по истечении времени корректно произошло отмена вложенных await’ов и наверху ловился TimeoutError без «проглатывания» отмен. Что выбрать?

👾 — await asyncio.wait_for(coro, timeout=5)
👍 — async with asyncio.timeout(5): ...
🥰 — signal.alarm(5) в том же потоке
⚡️ — Оборачивать всё в собственный try/except CancelledError

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

s = {1, 2, 3, 3, 2, 4, 5, 5}
print(s)

👾 — {1, 2, 3, 3, 2, 4, 5, 5}
👍 — {1, 2, 3, 4, 5}
🥰 — None
⚡️ — {1, 5}

Библиотека задач по Python
Как работает хэш-таблица?

Хэш-таблица в Python реализована в виде словаря (dict). Вот как это работает:

— Хэширование ключей: Когда вы добавляете пару ключ-значение в словарь, Python сначала вычисляет хэш-код ключа с помощью встроенной функции hash(). Хэш-код — это целое число, представляющее «отпечаток» ключа.

— Разрешение коллизий: Если два разных ключа имеют одинаковый хэш-код (коллизия), Python использует механизм разрешения коллизий для размещения значений в памяти. Одним из наиболее распространенных методов разрешения коллизий является метод цепочек, когда для каждого «ячейки» хэш-таблицы выделен список, в который добавляются все значения с одинаковыми хэш-кодами.

— Поиск значения: При поиске значения по ключу Python сначала вычисляет хэш-код ключа и затем использует его для определения соответствующей «ячейки» в хэш-таблице. Затем происходит поиск значения внутри этой «ячейки» (или цепочки).
Библиотека задач по Python
Что выведет код сверху?

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

Библиотека задач по Python
👍1
Как работает select_related в Django ORM?

👾 — Выполняет отдельный запрос для каждой связанной модели
👍 — Делает SQL JOIN и подтягивает связанные объекты сразу
🥰 — Кэширует связанные объекты в памяти на уровне Python
⚡️ — Автоматически превращает ForeignKey в ManyToMany

Библиотека задач по Python
👍1
Что произойдёт при await asyncio.gather(a(), b(), return_exceptions=False), если a() уже отменена (CancelledError), а b() всё ещё выполняется?

👾 — Вернётся список с CancelledError на месте a(), b() продолжит выполняться
👍 — Будет проброшена CancelledError, при этом gather отменит b() и дождётся её завершения/cleanup
🥰 — Будет проброшена CancelledError, но b() оставят работать в фоне
⚡️ — Поведение не определено и зависит от версии

Библиотека задач по Python
В asyncio родительский таск сделал token = var.set(1) и затем создал два таска t1, t2; в t1 внутри выполняется var.set(2). Как ContextVar ведёт себя по умолчанию?

👾 — Общее на все таски — t1 меняет значение и для родителя, и для t2
👍 — Контекст копируется при создании таска — t1 видит 1, может сменить на 2 только для себя; родитель и t2 остаются с 1
🥰 — Значение видно только в пределах одного await
⚡️ — Требуется вручную вызывать copy_context(), иначе ContextVar не работает

Библиотека задач по Python
Что делает os.rename()?

В Python функция os.rename() используется для переименования файла или директории в операционной системе. Она входит в модуль os.
Библиотека задач по Python
Что делает os.rename()?

В Python функция os.rename() используется для переименования файла или директории в операционной системе. Она входит в модуль os.
Библиотека задач по Python
Что верно для Python ≥3.7 про завершение генератора и yield from?

👾 — raise StopIteration(x) эквивалентен return x; yield from игнорирует значение
👍 — Явный raise StopIteration внутри генератора превращается в RuntimeError (PEP 479), а return x задаёт StopIteration.value=x; выражение yield from sub() возвращает это x
🥰 — return x приводит к RuntimeError; корректно только raise StopIteration(x)
⚡️ — yield from всегда возвращает None

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

👾 — ['first': 'sunday', 'second': 'monday', 1: 3, 2:4]
👍 — ['first': 'sunday', 'second': 'monday']
🥰 — [1: 3, 2: 4]
⚡️ — Ничего из вышеперечисленного
Библиотека задач по Python
Что выведет код?

👾 — [[4, 5], [1, 2, 3], [6, 7, 8, 9]]
👍 — [[6, 7, 8, 9], [1, 2, 3], [4, 5]]
🥰 — [2, 3, 4]
⚡️ — [3, 5, 9]

Библиотека задач по Python
В asyncio вы делаете task.cancel(), а внутри корутины стоит:

try:
await do_io()
except Exception:
log("error")

👾 — Отмена не поймается, т.к. CancelledError — потомок BaseException
👍 — Отмена будет поймана этим except, и если не пере-бросить, задача завершится «успехом», фактически проглотив отмену
🥰 — Отмена превратится в TimeoutError
⚡️ — Исключение поднимется мимо except и всегда завершит задачу как отменённую

Библиотека задач по Python
Пару недель назад мы обсуждали с коллегами, что digital-рынок стал похож на перегретый стартап:
новые инструменты, новые фреймворки, новые ИИ-решения — а времени разбираться во всём этом меньше, чем когда-либо.

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

В итоге несколько авторов digital-каналов решили объединиться и собрать всё полезное в одну папку — «Документы для тех, кто в digital»


🔴 Там 30 файлов, которые помогают выстроить управление, аналитику и внутренние процессы:

– Система мотивации сотрудников в диджитал на 2026 год,

– 4 шаблона основых документов любого ИТ проекта,

– Топ-6 промптов для создания контента,

– Шаблоны отчётов, которые помогают удерживать клиента,

– Чек-лист по GEO оптимизации сайта и контента.


Сохранив единожды папку «Документы для тех, кто в digital», вы сможете спокойно пройтись по всем каналам и скачать множество авторских документов, которые точно пригодятся в работе.


📂 Ссылка на папку: https://t.me/addlist/yXbxnD0CjS84MzBi

А чтобы добавить немного азарта — среди подписавшихся разыграют:

🥇 iPhone Air;
🥈 Яндекс Станцию Лайт 2;
🥉 HUAWEI Freebuds 5.

Как участвовать:

1. Подпишись на папку: https://t.me/addlist/yXbxnD0CjS84MzBi
2. Подтверди участие в боте

🗓 Итоги — 25 октября.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Время прокачать алгоритмы с 40-процентной скидкой до конца октября

На собеседовании не просят бездумно написать шаблонное решение. Важно понимать, как работают алгоритмы под капотом.

🔹 В курсе ты научишься:

— искать ошибки с помощью редакционного расстояния;
— работать с балансированными деревьями и графами;
— решать задачи с динамическим программированием;
— и многое другое, что пригодится на собеседованиях.

🤔 Решаешь задачи только в тг каналах? Пройди курс и отправляйся на реальные собеседования!

🔗 Подробнее о курсе (https://clc.to/8kLoxg)
Что возвращает a[:] для списка?

👾 — Новую (поверхностную) копию
⚡️ — Ссылку на исходный список
🥰 — Новую глубокую копию

Библиотека задач по Python
🐍 Что такое сцепление исключений?

Сцепление исключений представляет собой метод, который позволяет сохранить первоначальную причину ошибки при её дополнительной обработке.

Когда возникает исключение, его можно перехватить с помощью блока try/except и затем вызвать другое исключение в процессе обработки. При этом первоначальное исключение сохраняется как причина для нового.

Это предоставляет следующие преимущества:
— При обработке нового исключения сохраняется доступ к стеку вызовов и данным первоначального исключения.
— Можно добавить дополнительную информацию в новое исключение, не теряя оригинальных данных.
— Сохраняется иерархия исключений, что позволяет видеть полную цепочку возникновения ошибки.

Библиотека задач по Python
Что гарантирует GIL в CPython?

👾 — Отсутствие гонок данных в пользовательском коде
⚡️ — Параллельное выполнение CPU-bound задач в потоках
🥰 — Единовременное выполнение байткода одним потоком интерпретатора
👍 — Что все I/O операции неблокирующие

Библиотека задач по Python
Что делает параметр response_model в декораторе маршрута? (FastAPI)

👾 — Ограничивает типы входных параметров
⚡️ — Валидирует и сериализует ответ, отсекая лишние поля
🥰 — Меняет код ответа по умолчанию
👍 — Включает автодокументацию

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