en
Feedback
Python вопросы с собеседований

Python вопросы с собеседований

Open in Telegram

Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd

Show more

📈 Analytical overview of Telegram channel Python вопросы с собеседований

Channel Python вопросы с собеседований (@python_job_interview) in the Russian language segment is an active participant. Currently, the community unites 24 966 subscribers, ranking 5 488 in the Technologies & Applications category and 26 804 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 24 966 subscribers.

According to the latest data from 05 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -153 over the last 30 days and by -5 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 6.12%. Within the first 24 hours after publication, content typically collects 3.05% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 527 views. Within the first day, a publication typically gains 762 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 8.
  • Thematic interests: Content is focused on key topics such as github, api, собеседование, git, docker.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd

Thanks to the high frequency of updates (latest data received on 06 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

24 966
Subscribers
-524 hours
-437 days
-15330 days
Posts Archive
Когда я впервые начал искать работу в IT, у меня уже были пет-проекты, немного знаний и огромное желание попасть в профессию. Но, если честно, я не понимал, с чего начинать. Как составить резюме? Что писать, если нет коммерческого опыта? Как вообще попасть на собеседование? Много времени ушло на догадки, ошибки и отклики на вакансии, которые остались без ответа. Сейчас я бы с радостью сэкономил себе эти месяцы — и начал с четкой стратегии. 🧭 Такой план как раз подготовил Яндекс Практикум.   Они выпустили понятный гайд по стратегии поиска работы: шаг за шагом разбирают, как устроен найм сегодня, что реально важно работодателям, и как новичку не потеряться в этом процессе. 📌 Что чаще всего непонятно новичку: — Как составить резюме, если нет коммерческого опыта?   — Что писать, кроме «учился на курсах» и «делал пет-проекты»?   — Где искать вакансии, чтобы не тратить месяцы впустую?   — Как пройти первое техническое интервью и не провалиться от волнения? Всё это — не про код, а про стратегию. И хорошая новость в том, что её можно выстроить заранее. 📹 В дополнение — подборка видео от карьерных экспертов:   → как выделиться среди кандидатов,   → как составить резюме без опыта,   → как пройти собеседование и получить оффер. Гайд можно скачать прямо под этим постом — в нём простыми словами, по делу и без воды объясняют, с чего начать путь к первой работе. Забирай гайд “Как построить стратегию поиска работы” и смотри видео с экспертами, чтобы выделиться среди кандидатов и быстрее получить оффер. Реклама, АНО ДПО “Образовательные технологии Яндекса”, ИНН 7704282033

🍀 Большая шпаргалка по всем основам Python для подготовки к собеседованию @python_job_interview
+1
🍀 Большая шпаргалка по всем основам Python для подготовки к собеседованию @python_job_interview

🚀 Изучаем Python с нуля до уверенного уровня за 3 месяца — нашли лучший репозиторий для новичков. 📚 Что внутри: • Чёткая ст
🚀 Изучаем Python с нуля до уверенного уровня за 3 месяца — нашли лучший репозиторий для новичков. 📚 Что внутри: • Чёткая структура по темам — от синтаксиса до ООП, без воды • Сотни понятных примеров — меняй под себя и учись на практике • Всё объяснено простым языком — даже если ты никогда не кодил • Удобный формат Jupyter Notebook — легко читать и запускать • И главное — абсолютно бесплатно Начни разбираться в Python уже сегодня: 🔗 github.com/AllenDowney/ThinkPython @python_job_interview

📦 Pydantic Extra Types — коллекция дополнительных типов данных для Pydantic, которые не вошли в основную библиотеку. Проект
📦 Pydantic Extra Types — коллекция дополнительных типов данных для Pydantic, которые не вошли в основную библиотеку. Проект расширяет возможности валидации данных, предлагая специфические форматы и проверки. Типы подключаются как опциональные зависимости, позволяя выбирать только нужные компоненты. Например, можно добавить поддержку pendulum для работы с временными зонами. 🤖 GitHub @python_job_interview

🚀 Как оптимизировать Python‑код уже на старте — советы для новичков Не нужно быть профи, чтобы писать быстрый и аккуратный к
🚀 Как оптимизировать Python‑код уже на старте — советы для новичков Не нужно быть профи, чтобы писать быстрый и аккуратный код. Вот 7 простых приёмов, которые реально помогают: 1. Используй профайлеры (cProfile, Py‑Spy) Перед оптимизацией — измерь время. Часто больше всего тормозят совсем неожиданные места. 2. Перестрой алгоритмы и структуры данных Выбор между списком, множеством или словарём может кардинально изменить сложность: O(1) вместо O(n) при поиске. 3. Выбирай встроенные функции map, max, join — всё это написано на C и работает быстрее ручных циклов. 4. Пиши list/dict comprehensions и используй zip, enumerate Это компактнее, читабельнее и часто быстрее классических for-циклов. 5. Генераторы вместо списков, где не нужен весь набор сразу Снижают потребление памяти и ускоряют обработку. 6. Переход на PyPy или JIT‑ускорители PyPy, Numba и Cython могут дать прирост производительности в 2–100 раз для тяжёлых вычислений. 7. Избегай преждевременной оптимизации Оптимизируй только то, что реально тормозит. Профайлер покажет, где именно. 🧩 Быстрый чек-лист: • Измерил ли я время выполнения? • Подходящие ли структуры данных? • Используются ли встроенные функции? • Применены ли comprehensions и генераторы? • Рассматривал ли я PyPy или JIT? • Код по-прежнему читаемый? ✅ Вывод: даже новичок может писать быстрый и понятный Python-код. Главное — думать, замерять и улучшать без фанатизма. ▶️ Подробности с кодом

🧠 Хитрая задача по Python — *ловушка с изменяемыми значениями по умолчанию* Вопрос: Что выведет следующий код?

def append_to_list(value, my_list=[]):
    my_list.append(value)
    return my_list

print(append_to_list(1))
print(append_to_list(2))
print(append_to_list(3))
Ваш ответ? 🤔 Многие ожидают:

[1]
[2]
[3]
Но фактически вывод будет:
python 
[1]
[1, 2]
[1, 2, 3]
🔍 Почему так происходит? Параметр my_list=[] создаётся один раз — при определении функции. И он сохраняется между вызовами. То есть все вызовы функции используют один и тот же список по умолчанию. Это одна из самых частых ошибок в продакшене. ✅ Правильный способ — использовать None как значение по умолчанию:


def append_to_list(value, my_list=None):
    if my_list is None:
        my_list = []
    my_list.append(value)
    return my_list
Теперь:
[1]
[2]
[3]
Каждый вызов получает новый список. ⚠️ Если вы работаете с функциями, которые принимают списки или словари — всегда проверяйте, не мутируется ли значение между вызовами.

🧠 Ускорь import в Python-проектах с помощью lazy loading — без изменения логики Если у тебя проект с тяжёлыми модулями (`pandas`, torch, tensorflow`), но они не всегда нужны — не загружай их зря. Python позволяет **отложить импорт до первого использования**, через встроённый `importlib. Вот как это выглядит на практике:


import importlib

# Обёртка для ленивого импорта
def lazy_import(name):
    return importlib.util.LazyLoader(importlib.import_module(name))

# Использование
np = lazy_import('numpy')
# numpy ещё не загружен

# Теперь загрузится:
print(np.array([1, 2, 3]))

Repost from Python/ django
👾 GREMLLM — теперь у ваших багов есть сознание GREMLLM — это необычный Python-класс, в котором все методы и свойства создают
👾 GREMLLM — теперь у ваших багов есть сознание GREMLLM — это необычный Python-класс, в котором все методы и свойства создаются динамически с помощью LLM. Вы описываете, *что за объект вы хотите*, и дальше GREMLLM сам решает, что должно происходить при вызове методов или обращении к полям. 📦 Установка:

pip install gremllm
🔧 Пример:


from gremllm import Gremllm

counter = Gremllm('counter')
counter.value = 5
counter.increment()
print(counter.value)               # → 6?
print(counter.to_roman_numerals())  # → VI?
🧩 Возможности: – Динамическое поведение: всё определяется "на лету" с помощью LLM – Поддержка OpenAI, Claude, Gemini, и локальных моделей – Wet Mode: можно строить цепочки вызовов (методы возвращают объекты) – Verbose Mode: выводит, какой код был сгенерирован – Умная обработка ошибок и настройка через наследование ⚠️ Это экспериментальный инструмент. Не для продакшена. Но очень интересен для изучения LLM-интеграций в Python-код. 🔗 Репозиторий: https://github.com/ur-whitelab/gremllm @pythonl

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

import functools
import logging

def log(level=logging.INFO):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kwargs):
            logging.log(level, f"Вызов {func.__name__} с args={args}, kwargs={kwargs}")
            return func(*args, **kwargs)
        return wrapper
    return decorator

@log(logging.DEBUG)
def compute(x, y):
    return x + y
✅ Зачем это нужно: Декоратор гибко настраивается; Подходит для трассировки в проде и отладки в деве; Сохраняет сигнатуру и docstring благодаря @functools.wraps. ⚠️ Совет: избегай вложенности >2 уровней и всегда пиши тесты на поведение декоратора. Python даёт инструменты, которые выглядят магией, но работают стабильно — если знаешь, как ими пользоваться.

Repost from Machinelearning
🔥 Google DeepMind представили новую open-source библиотеку на Python для сборки асинхронных AI‑пайплайнов в реальном времени
+2
🔥 Google DeepMind представили новую open-source библиотеку на Python для сборки асинхронных AI‑пайплайнов в реальном времени! Новая библиотека позволяет собирать AI-процессы из компонентов — как LEGO для ИИ-агентов. 🔧 Особенности: - Построение асинхронных, компонуемых пайплайнов - Поддержка Gemini и Gemini Live API - Основана на asyncio - Обрабатывает мультимодальные данные: текст, изображения, аудио - Внутри готовые агенты: real-time агент, исследователь, live-комментатор 💡 Подходит для: - Разработки ИИ-агентов - Генеративных моделей, работающих в реальном времени - Быстрой сборки MVP с мультимодальными возможностями Установка:

pip install genai-processors
Открытый код, готовые компоненты и интеграция с API. • Repo: https://github.com/google-gemini/genai-processorsBlog: https://developers.googleblog.com/en/genai-processors/ @ai_machinelearning_big_data #DeepMind #ai #ml

🎙️ pytest-recording — плагин для записи и воспроизведения HTTP-запросов в тестах Инструмент использует VCR.py под капотом, ч
🎙️ pytest-recording — плагин для записи и воспроизведения HTTP-запросов в тестах Инструмент использует VCR.py под капотом, чтобы сохранять сетевые взаимодействия в YAML-кассеты и переиспользовать их при последующих запусках. Достаточно добавить @pytest.mark.vcr к тесту и все запросы автоматически запишутся или возьмутся из кэша. Особенно удобно для тестирования API, можно блокировать случайные сетевые вызовы через @pytest.mark.block_network и точечно разрешать только нужные хосты. Поддерживается тонкая настройка через vcr_config и работа в режиме перезаписи кассет. 🤖 GitHub @python_job_interview

📌 Сложная задача для собеседования на Python: «Асинхронный кэш с TTL и инвалидацией». Условие: Реализуйте потокобезопасный асинхронный кэш с временем жизни записей, поддержкой инвалидации по ключу и автоматическим удалением устаревших записей. Кэш должен: 1️⃣ Хранить значения не дольше указанного TTL (seconds) 2️⃣ Автоматически очищать устаревшие записи без блокировки основного потока 3️⃣ Поддерживать асинхронные операции get/set 4️⃣ Иметь механизм ручной инвалидации 5️⃣ Гарантировать потокобезопасность 6️⃣ Оптимизировать память Ожидаемое решение:
import asyncio
import time
from collections import OrderedDict
from typing import Any, Optional
import threading

class AsyncTTLCache:
    def __init__(self, maxsize: int = 1024, ttl: int = 60):
        self._cache = OrderedDict()
        self._maxsize = maxsize
        self._ttl = ttl
        self._lock = threading.Lock()
        self._cleanup_task = asyncio.create_task(self._cleanup_expired())

    async def get(self, key: str) -> Optional[Any]:
        with self._lock:
            if key not in self._cache:
                return None
            value, expiry = self._cache[key]
            if time.time() > expiry:
                del self._cache[key]
                return None
            # Move to end to mark as recently used
            self._cache.move_to_end(key)
            return value

    async def set(self, key: str, value: Any) -> None:
        with self._lock:
            if key in self._cache:
                self._cache.move_to_end(key)
            self._cache[key] = (value, time.time() + self._ttl)
            if len(self._cache) > self._maxsize:
                self._cache.popitem(last=False)

    async def invalidate(self, key: str) -> None:
        with self._lock:
            if key in self._cache:
                del self._cache[key]

    async def _cleanup_expired(self) -> None:
        while True:
            await asyncio.sleep(self._ttl)
            with self._lock:
                now = time.time()
                expired_keys = [
                    k for k, (_, expiry) in self._cache.items()
                    if expiry <= now
                ]
                for k in expired_keys:
                    del self._cache[k]

    def __del__(self):
        self._cleanup_task.cancel()


# Пример использования
async def main():
    cache = AsyncTTLCache(ttl=2)
    
    await cache.set("a", 1)
    print(await cache.get("a"))  # 1
    
    await asyncio.sleep(3)
    print(await cache.get("a"))  # None
    
    await cache.set("b", 2)
    await cache.invalidate("b")
    print(await cache.get("b"))  # None

asyncio.run(main())
Предлагайте свои варианты решения в комментариях⏬️ @python_job_interview

🔍Открытое собеседование на Python-бекендера с разработчиком из Avito и Яндекс во вторник 10 июля(уже в четверг!) в 19:00 по
🔍Открытое собеседование на Python-бекендера с разработчиком из Avito и Яндекс во вторник 10 июля(уже в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика. Как это будет: 📂 Савва Демиденко, ТехЛид с опытом в Яндексе и Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Савва будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Савве Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqxjiWL7

🎙️ pytest-recording — плагин для записи и воспроизведения HTTP-запросов в тестах. Полезный инструмент для Python-разработчик
🎙️ pytest-recording — плагин для записи и воспроизведения HTTP-запросов в тестах. Полезный инструмент для Python-разработчиков, который помогает сделать тесты, зависящие от внешних API, более стабильными и быстрыми. Плагин использует VCR.py под капотом, позволяя записывать реальные HTTP-взаимодействия в YAML-кассеты и затем воспроизводить их локально. Инструмент имеет удобный режим rewrite, который полностью перезаписывает кассеты, а не просто дополняет их. Также есть встроенная блокировка случайных сетевых запросов во время тестирования. 🤖 GitHub @python_job_interview

⚙️ Подменяй любые импорты в Python “на лету” — без изменения кода Если ты хочешь протестировать модуль, подменить зависимость, замокать внешний сервис или обмануть импорт — не обязательно редактировать исходники. Python позволяет перехватывать импорты прямо во время выполнения, через sys.modules. Вот минимальный приём, который делает это прозрачно:

import sys
import types

# Создаём фейковый модуль
fake = types.SimpleNamespace()
fake.get_data = lambda: "подмена работает"

# Подменяем импорт
sys.modules['external_service'] = fake

# Теперь даже import будет работать
import external_service
print(external_service.get_data())  # → "подмена работает"

🧠 Ускоряй Python циклы без NumPy — через встроенный `array.array` Если ты используешь большие списки чисел в Python и работаешь с ними в цикле — знай: list медленный и неэффективный по памяти. Есть способ ускорить операции в 2–5 раз без внешних библиотек — просто используй array точка array. Попробуй и напиши в комментах результат, на сколько ускорились твои функции. from array import array data = array('f', [0.1] * 10_000_000) # вместо обычного list # быстрая арифметика for i in range(len(data)): data[i] *= 2.5

⚡️ Почему лучшие разработчики всегда на шаг впереди? Потому что они знают, где брать настоящие инсайд! Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе. ИИ: t.me/ai_machinelearning_big_data Python: t.me/pythonl Linux: t.me/linuxacademiya Мл собес t.me/machinelearning_interview C++ t.me/cpluspluc Docker: t.me/DevopsDocker Хакинг: t.me/linuxkalii МЛ: t.me/machinelearning_ru Devops: t.me/DevOPSitsec Data Science: t.me/data_analysis_ml Javascript: t.me/javascriptv C#: t.me/csharp_ci Java: t.me/java_library Базы данных: t.me/sqlhub Python собеседования: t.me/python_job_interview Мобильная разработка: t.me/mobdevelop Golang: t.me/Golang_google React: t.me/react_tg Rust: t.me/rust_code ИИ: t.me/vistehno PHP: t.me/phpshka Android: t.me/android_its Frontend: t.me/front Big Data: t.me/bigdatai МАТЕМАТИКА: t.me/data_math Kubernets: t.me/kubernetc Разработка игр: https://t.me/gamedev Физика: t.me/fizmat SQL: t.me/databases_tg Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy 🎓954ГБ ОПЕНСОРС КУРСОВ: @courses 😆ИТ-Мемы: t.me/memes_prog 🇬🇧Английский: t.me/english_forprogrammers 🧠ИИ: t.me/vistehno 🖥 Chatgpt для кода в тг: @Chatgpturbobot 📕Ит-книги: https://t.me/addlist/BkskQciUW_FhNjEy 💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi Подпишись, чтобы всегда знать, куда двигаться дальше!

🐍 Python-задача с подвохом: что напечатает код?

def extend_list(val, lst=[]):
    lst.append(val)
    return lst

list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list('a')

print("list1 =", list1)
print("list2 =", list2)
print("list3 =", list3)
Варианты ответа: 1️⃣ list1 = [10], list2 = [123], list3 = ['a'] 2️⃣ list1 = [10], list2 = [123], list3 = [10, 'a'] 3️⃣ list1 = [10, 'a'], list2 = [123], list3 = [10, 'a'] 4️⃣ list1 = [10, 'a'], list2 = [123], list3 = ['a'] --- 💡 Подсказка: Если вы используете изменяемый объект (например, список) как значение по умолчанию в аргументе функции — он сохраняется между вызовами. --- ✅ Ответ: list1 = [10, 'a'] list2 = [123] list3 = [10, 'a'] 🔎 Почему? 👉 Значение по умолчанию lst=[] создаётся один раз — при определении функции. 👉 Когда вызываем extend_list(10), значение 10 добавляется в этот общий список. 👉 Когда вызываем extend_list(123, []), передаём новый список, всё ок. 👉 Когда вызываем extend_list('a'), снова используется общий список из первого вызова. Чтобы избежать этой ловушки:

def extend_list(val, lst=None):
    if lst is None:
        lst = []
    lst.append(val)
    return lst
🚀 Запомни: никогда не используй изменяемые объекты как значения по умолчанию для аргументов функции! @python_job_interview

📥 Palanteer — инструмент для глубокого анализа производительности C++ и Python-приложений. Этот проект предлагает детальную
📥 Palanteer — инструмент для глубокого анализа производительности C++ и Python-приложений. Этот проект предлагает детальную телеметрию: от временных меток выполнения функций до отслеживания потребления памяти и переключений контекста. Инструмент обладает минималистичной интеграцией: в C++ достаточно подключить один заголовочный файл, а Python-код анализируется автоматически. Визуализация в реальном времени включает временные графики, flame graphs и логи с наносекундным разрешением. 🤖 GitHub