Что из перечисленного не является ключевым словом в языке Python?
👾 — pass
👍 — eval
🥰 — assert
⚡️ — nonlocal
Библиотека задач по 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
👾 — 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
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
Хэш-таблица в Python реализована в виде словаря (dict). Вот как это работает:
— Хэширование ключей: Когда вы добавляете пару ключ-значение в словарь, Python сначала вычисляет хэш-код ключа с помощью встроенной функции hash(). Хэш-код — это целое число, представляющее «отпечаток» ключа.
— Разрешение коллизий: Если два разных ключа имеют одинаковый хэш-код (коллизия), Python использует механизм разрешения коллизий для размещения значений в памяти. Одним из наиболее распространенных методов разрешения коллизий является метод цепочек, когда для каждого «ячейки» хэш-таблицы выделен список, в который добавляются все значения с одинаковыми хэш-кодами.
— Поиск значения: При поиске значения по ключу Python сначала вычисляет хэш-код ключа и затем использует его для определения соответствующей «ячейки» в хэш-таблице. Затем происходит поиск значения внутри этой «ячейки» (или цепочки).
Библиотека задач по Python
Как работает select_related в Django ORM?
👾 — Выполняет отдельный запрос для каждой связанной модели
👍 — Делает SQL JOIN и подтягивает связанные объекты сразу
🥰 — Кэширует связанные объекты в памяти на уровне Python
⚡️ — Автоматически превращает ForeignKey в ManyToMany
Библиотека задач по Python
👾 — Выполняет отдельный запрос для каждой связанной модели
👍 — Делает 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
👾 — Вернётся список с 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
👾 — Общее на все таски — t1 меняет значение и для родителя, и для t2
👍 — Контекст копируется при создании таска — t1 видит 1, может сменить на 2 только для себя; родитель и t2 остаются с 1
🥰 — Значение видно только в пределах одного await
⚡️ — Требуется вручную вызывать copy_context(), иначе ContextVar не работает
Библиотека задач по Python
Что делает os.rename()?
В Python функция os.rename() используется для переименования файла или директории в операционной системе. Она входит в модуль os.
Библиотека задач по Python
В Python функция os.rename() используется для переименования файла или директории в операционной системе. Она входит в модуль os.
Библиотека задач по Python
Что делает os.rename()?
В Python функция os.rename() используется для переименования файла или директории в операционной системе. Она входит в модуль os.
Библиотека задач по Python
В 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
👾 — 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
В asyncio вы делаете task.cancel(), а внутри корутины стоит:
try:
await do_io()
except Exception:
log("error")
👾 — Отмена не поймается, т.к. CancelledError — потомок BaseException
👍 — Отмена будет поймана этим except, и если не пере-бросить, задача завершится «успехом», фактически проглотив отмену
🥰 — Отмена превратится в TimeoutError
⚡️ — Исключение поднимется мимо except и всегда завершит задачу как отменённую
Библиотека задач по Python
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 октября.
новые инструменты, новые фреймворки, новые ИИ-решения — а времени разбираться во всём этом меньше, чем когда-либо.
При этом базовые задачи у всех одинаковые: держать процессы под контролем, следить за качеством, закрывать акты день в день и не терять фокус.
В итоге несколько авторов digital-каналов решили объединиться и собрать всё полезное в одну папку — «Документы для тех, кто в digital»
– Система мотивации сотрудников в диджитал на 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)
На собеседовании не просят бездумно написать шаблонное решение. Важно понимать, как работают алгоритмы под капотом.
🔹 В курсе ты научишься:
— искать ошибки с помощью редакционного расстояния;
— работать с балансированными деревьями и графами;
— решать задачи с динамическим программированием;
— и многое другое, что пригодится на собеседованиях.
🤔 Решаешь задачи только в тг каналах? Пройди курс и отправляйся на реальные собеседования!
🔗 Подробнее о курсе (https://clc.to/8kLoxg)
Что возвращает a[:] для списка?
👾 — Новую (поверхностную) копию
⚡️ — Ссылку на исходный список
🥰 — Новую глубокую копию
Библиотека задач по Python
👾 — Новую (поверхностную) копию
⚡️ — Ссылку на исходный список
🥰 — Новую глубокую копию
Библиотека задач по Python
🐍 Что такое сцепление исключений?
Сцепление исключений представляет собой метод, который позволяет сохранить первоначальную причину ошибки при её дополнительной обработке.
Когда возникает исключение, его можно перехватить с помощью блока try/except и затем вызвать другое исключение в процессе обработки. При этом первоначальное исключение сохраняется как причина для нового.
Это предоставляет следующие преимущества:
— При обработке нового исключения сохраняется доступ к стеку вызовов и данным первоначального исключения.
— Можно добавить дополнительную информацию в новое исключение, не теряя оригинальных данных.
— Сохраняется иерархия исключений, что позволяет видеть полную цепочку возникновения ошибки.
Библиотека задач по Python
Сцепление исключений представляет собой метод, который позволяет сохранить первоначальную причину ошибки при её дополнительной обработке.
Когда возникает исключение, его можно перехватить с помощью блока try/except и затем вызвать другое исключение в процессе обработки. При этом первоначальное исключение сохраняется как причина для нового.
Это предоставляет следующие преимущества:
— При обработке нового исключения сохраняется доступ к стеку вызовов и данным первоначального исключения.
— Можно добавить дополнительную информацию в новое исключение, не теряя оригинальных данных.
— Сохраняется иерархия исключений, что позволяет видеть полную цепочку возникновения ошибки.
Библиотека задач по Python
Что гарантирует GIL в CPython?
👾 — Отсутствие гонок данных в пользовательском коде
⚡️ — Параллельное выполнение CPU-bound задач в потоках
🥰 — Единовременное выполнение байткода одним потоком интерпретатора
👍 — Что все I/O операции неблокирующие
Библиотека задач по Python
👾 — Отсутствие гонок данных в пользовательском коде
⚡️ — Параллельное выполнение CPU-bound задач в потоках
🥰 — Единовременное выполнение байткода одним потоком интерпретатора
👍 — Что все I/O операции неблокирующие
Библиотека задач по Python
Что делает параметр response_model в декораторе маршрута? (FastAPI)
👾 — Ограничивает типы входных параметров
⚡️ — Валидирует и сериализует ответ, отсекая лишние поля
🥰 — Меняет код ответа по умолчанию
👍 — Включает автодокументацию
Библиотека задач по Python
👾 — Ограничивает типы входных параметров
⚡️ — Валидирует и сериализует ответ, отсекая лишние поля
🥰 — Меняет код ответа по умолчанию
👍 — Включает автодокументацию
Библиотека задач по Python