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

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

رفتن به کانال در Telegram

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

نمایش بیشتر

📈 تحلیل کانال تلگرام Python вопросы с собеседований

کانال Python вопросы с собеседований (@python_job_interview) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 24 822 مشترک است و جایگاه 5 258 را در دسته فناوری و برنامه‌ها و رتبه 26 472 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 24 822 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 25 اوت, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -44 و در ۲۴ ساعت گذشته برابر 0 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 6.01% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 2.76% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 1 492 بازدید دریافت می‌کند. در اولین روز معمولاً 684 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 6 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند github, api, собеседование, git, docker تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 27 اوت, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

24 822
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+637 روز
-4430 روز
آرشیو پست ها
⚡️Лето подходит к концу, но подарки нет! Разыгрываем iPhone 16 Pro и Apple Watch SE 2 📲⌚️ 📄 Условия участия очень просты: ⚡
⚡️Лето подходит к концу, но подарки нет! Разыгрываем iPhone 16 Pro и Apple Watch SE 2 📲⌚️ 📄 Условия участия очень просты: ⚡️Подписаться на Telegram каналы: ▪t.me/pythonl t.me/DevOPSitsec ⚡️Нажать "Участвую!" под этим постом Итоги подведём уже 15 сентября. Доставка осуществляется по всей территории РФ и РБ🚚 ⚡️Удачи ВСЕМ🍀

⚡ Python-трюк: быстрая группировка данных Хотите сгруппировать элементы по ключу без лишних циклов? Используйте itertools.groupby — но не забудьте предварительно отсортировать данные по этому ключу, иначе группы будут неправильными.

from itertools import groupby
from operator import itemgetter

data = [
    {"user": "alice", "score": 8},
    {"user": "bob",   "score": 5},
    {"user": "alice", "score": 7},
    {"user": "bob",   "score": 9},
]

# Сортируем по ключу
data.sort(key=itemgetter("user"))

# Группируем и считаем средний балл
for user, items in groupby(data, key=itemgetter("user")):
    scores = [i["score"] for i in items]
    print(user, "avg score:", sum(scores) / len(scores))

#Python #itertools #groupby #lifehack

Тот, кто знает, чего хотят на собеседовании, всегда выигрывает у того, кто просто пришел отвечать на вопросы. Разница между ними в том, что первый видит процесс целиком: он понимает, зачем нужен каждый этап, чего ждет интервьюер, и как в нужный момент показать сильные стороны. А второй просто надеется, что его ответы «понравятся». И, к сожалению, чаще всего это не срабатывает. 21 августа в 18:00 (МСК) karpovꓸcourses проведут вебинар совместно с Павлом Бухтиком — экс-руководителем продуктовой аналитики в Яндексе и FindMyKids, экспертом с восьмилетним опытом в профессии, пять из которых на управленческой позиции. Вам покажут, как выглядит воронка собеседований, что происходит на каждом шаге, и как реагировать на задачи так, чтобы интервьюер видел, что перед ним человек, который точно справится с работой. Узнайте четкий план, как действовать на собеседовании: https://clc.to/erid_2W5zFJd2cvC  Это третий вебинар Data-интенсива: от новичка до оффера, который поможет сориентироваться в сфере Data Science и перейти к первым шагам. Реклама. ООО "КАРПОВ КУРСЫ". ИНН 7811764627. erid: 2W5zFJd2cvC

🐍 Полезный совет по Python: используйте with open() вместо ручного закрытия файлов Начинающие часто пишут так:

f = open("data.txt", "r")
data = f.read()
f.close()
Код рабочий, но если внутри произойдёт ошибка — файл может не закрыться. Это приведёт к утечкам ресурсов. 🚀 Правильный способ — использовать контекстный менеджер with open()

with open("data.txt", "r") as f:
    data = f.read()
💡 Преимущества: Файл закрывается автоматически, даже если произойдёт ошибка Код становится короче и чище Работает одинаково для чтения, записи и бинарных файлов 📊 Пример записи:

with open("output.txt", "w") as f:
    f.write("Hello, Python!")
После выхода из блока with файл гарантированно закрыт, ничего вручную делать не нужно. 📌 Итог Используйте with open() всегда, когда работаете с файлами. Это безопаснее, чище и надёжнее, чем open() + close().

🔥 НЕОЧЕВИДНЫЙ ТРЮК: ускоряй циклы в Python без лишнего кода с помощью itemgetter Если ты часто итерируешь по списку словарей и достаёшь одни и те же поля — ты можешь заметно ускорить код, заменив lambda на operator.itemgetter. Это не только делает код чище, но и работает быстрее за счёт оптимизации на уровне C. Полезно, например, при сортировке, группировке или фильтрации данных. https://www.youtube.com/shorts/55V7jgTrcBA

🖥 Полезный трюк: кэшируйте результат функции на диск, чтобы повторные вызовы выполнялись мгновенно. Ключ строится из кода функции и аргументов, поэтому кэш автоматически сбросится, если вы измените логику.

import os
import pickle
import hashlib


def disk_cache(path="cache.pkl"):
    def deco(func):
        def wrapper(*a, **kw):
            # Формируем ключ на основе байткода функции и аргументов
            key = hashlib.md5(
                pickle.dumps((func.__code__.co_code, a, kw))
            ).hexdigest()

            # Проверка наличия кэша
            if os.path.exists(path):
                cache = pickle.load(open(path, "rb"))
                if key in cache:
                    return cache[key]
            else:
                cache = {}

            # Вычисление и сохранение результата
            res = func(*a, **kw)
            cache[key] = res
            pickle.dump(cache, open(path, "wb"))
            return res

        return wrapper
    return deco


@disk_cache()
def heavy_calc(x):
    print("Вычисляю...")
    return x ** 2


if __name__ == "__main__":
    print(heavy_calc(10))  # первый вызов — вычисляет
    print(heavy_calc(10))  # второй вызов — берёт из кэша

🐍 Snoop — умный дебаггер для Python, который делает отладку проще print-ов. Проект предлагает альтернативу классическому pri
🐍 Snoop — умный дебаггер для Python, который делает отладку проще print-ов. Проект предлагает альтернативу классическому print() для отладки: просто добавьте декоратор @snoop к функции, и он покажет пошаговое выполнение кода с значениями переменных. Интегрируется с Jupyter, поддерживает глубину вложенных вызовов (depth=2) и даже умеет взрывать сложные структуры данных (watch_explode). Не требует сложной настройки — достаточно pip install snoop. 🤖 GitHub @python_job_interview

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

🖥 ЗАДАЧА С СОБЕСЕДОВАНИЯ: что выведет код? Что выведет следующий код — и почему?

a = 256
b = 256
print(a is b)

x = 257
y = 257
print(x is y)
❓Ожидаешь True в обоих случаях? Не всё так просто. 📌 В Python целые числа от -5 до 256 кешируются. То есть a и b указывают на один и тот же объект → a is b → True Но x и y — это уже разные объекты, потому что 257 не кешируется → x is y → False ⚠️ is сравнивает объекты, а не значения. Если хочешь сравнить значения — используй == 💡 Вывод: даже базовые типы могут вести себя неожиданно, если сравнивать их через is.

Repost from Machinelearning
📌Новый прорыв в алгоритмах: найден способ считать кратчайшие пути быстрее Дейкстры Метод преодоления "барьера сортировки" дл
📌Новый прорыв в алгоритмах: найден способ считать кратчайшие пути быстрее Дейкстры Метод преодоления "барьера сортировки" для задач кратчайшего пути в ориентированных графах. Группа исследователей из университетов Синьхуа, Стенфорда и Института Макса Планика представили детерминированный алгоритм для решения задачи SSSP в ориентированных графах с неотрицательными вещественными весами, который работает за время, пропорциональное числу ребер, умноженному на логарифмический множитель, который растет медленнее, чем обычный логарифм.
Проблема поиска кратчайшего пути от одной вершины до всех остальных (SSSP) — одна из фундаментальных в теории графов, и её история тянется с 50-х годов прошлого века. Классический алгоритм Дейкстры, в связке с продвинутыми структурами данных, решает эту задачу за время, которое примерно пропорционально сумме числа рёбер и произведения числа вершин на логарифм от их же числа. Именно этот множитель - число вершин, умноженное на логарифм, долгое время считался теоретическим минимумом, так как в своей основе алгоритм Дейкстры побочно сортирует вершины по расстоянию от источника. Этот предел известен как «барьер сортировки» и казался непреодолимым.
🟡Основная идея работы - гибрид из алгоритма Дейкстры и алгоритма Беллмана-Форда. Алгоритм Дейкстры на каждом шаге выбирает из "границы" - множества еще не обработанных вершин ту, что находится ближе всего к источнику. Это и создает узкое место, так как размер границы может достигать величины, сопоставимой с общим числом вершин в графе, и на каждом шаге требуется находить минимум. Алгоритм Беллмана-Форда, в свою очередь, не требует сортировки, но его сложность пропорциональна числу ребер, умноженному на количество шагов, что слишком долго. 🟡Новый подход использует рекурсию. Вместо того чтобы поддерживать полную отсортированную границу, алгоритм фокусируется на ее сокращении. А если граница слишком велика, то запускается несколько шагов алгоритма Беллмана-Форда из ее вершин. Это позволяет найти точное расстояние до некоторой части вершин, чьи кратчайшие пути коротки. Длинные же пути должны проходить через одну из "опорных" вершин, которых оказывается значительно меньше, чем вершин в исходной границе. Таким образом, сложная работа концентрируется только на этом небольшом наборе опорных точек. 🟡Принцип "разделяй и властвуй". Он рекурсивно разбивает задачу на несколько уровней. На каждом уровне применяется вышеописанная техника сокращения границы, что позволяет значительно уменьшить объем работы на каждую вершину, поскольку логарифмический множитель эффективно делится на другой, более медленно растущий логарифмический член. В итоге, путем подбора внутренних параметров алгоритма, которые являются специфическими функциями от логарифма числа вершин, и достигается итоговая временная сложность, пропорциональная числу ребер, умноженному на этот новый, более медленно растущий логарифмический множитель. ✔️ Зачем это нужно — Быстрее решаются задачи в навигации, графах дорог, сетях и планировании. — Доказано, что Дейкстра — не предел, и можно ещё ускорять поиск кратчайших путей. 🟡Arxiv @ai_machinelearning_big_data #AI #ML #Sorting #Graphs #Algorithm

🖥 Flet — фреймворк для создания кроссплатформенных приложений на Python — pip install flet Flet — фреймворк, предоставляющий
🖥 Flet — фреймворк для создания кроссплатформенных приложений на Pythonpip install flet Flet — фреймворк, предоставляющий Flutter компоненты для разработки кроссплатформенных приложений на Python (разработчики обещают расширять список поддерживаемых языков). Flet не использует какие-то SDK, не компилирует код Python в код Dart и весь UI отображается с помощью встроенного Web сервера. 🖥 GitHub 🟡 Доки

120 ключевых вопросов по SQL за 2025 год Статья содержит 120 ключевых вопросов по SQL для собеседований, разделённых по темам
120 ключевых вопросов по SQL за 2025 год Статья содержит 120 ключевых вопросов по SQL для собеседований, разделённых по темам и уровням сложности, с краткими пояснениями. Основываясь на актуальных требованиях 2025 года, вопросы охватывают базу данных, оптимизацию, практические задачи и нюансы СУБД (MySQL, PostgreSQL, SQL Server). 🔜 Подробности

Repost from Machinelearning
⚡ Agent Lightning — ускоритель обучения для ИИ-агентов от Microsoft Agent Lightning — это фреймворк для обучения и оптимизаци
Agent Lightning — ускоритель обучения для ИИ-агентов от Microsoft Agent Lightning — это фреймворк для обучения и оптимизации LLM-агентов с помощью Reinforcement Learning без изменения их кода. 🧠 Поддерживает: • LangChain • AutoGen • OpenAI Agents SDK • и другие фреймворки на Python 🔧 Как он работает: • Агент не нужно переписывать — он подключается как есть • Вся его работа разбивается на отдельные шаги (эпизоды), которые можно анализировать • Специальный алгоритм LightningRL оценивает, какие действия были полезны, а какие — нет • Система может учитывать не только финальный результат, но и промежуточные сигналы (награды) • Эти данные автоматически собираются и используются для дообучения агента 🔥 Преимущества: • Не требует модификации логики агента • Можно легко подключить к существующим пайплайнам • Улучшает точность и устойчивость в сложных задачах: от генерации кода до Text-to-SQL Отличный инструмент для всех, кто хочет сделать своих LLM-агентов. 🟠Проект: https://microsoft.com/en-us/research/project/agent-lightning/ 🟠Статья: https://arxiv.org/abs/2508.03680 🟠Github: https://github.com/microsoft/agent-lightning @ai_machinelearning_big_data #agent #reinforcementlearning #mlops #llm #Microsoft

🔑 Сложная задача для собеседования по Python Уровень сложности: Senior/Team Lead. Условие: Рассмотрим следующий фрагмент кода с использованием asyncio и декораторов:
import asyncio

def cache(func):
    cache = {}
    
    async def wrapper(*args):
        if args not in cache:
            cache[args] = await func(*args)
        return cache[args]
    
    return wrapper

@cache
async def expensive_operation(x):
    await asyncio.sleep(1)
    return x * 2

async def main():
    tasks = [expensive_operation(i) for i in range(3)]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())
Вопрос: Что будет выведено в консоль и почему? Варианты ответов: 1) [0, 2, 4] — вывод корректный, кеширование работает 2) RuntimeError — возникает из-за неправильного использования await в декораторе 3) [0, 0, 0] — возникает ошибка кеширования 4) [2, 2, 2] — декоратор мешает асинхронности Правильный ответ: 3) Пояснение: 1️⃣ Проблема в декораторе: обычный def-декоратор не совместим с асинхронными функциями. При вызове await func(args) внутри wrapper, декоратор не дожидается выполнения корутины, возвращая None. 2️⃣ Почему [0, 0, 0]: — cache[args] сохраняет не результат, а корутину (<coroutine object...>). — При повторном обращении к кешу возвращается эта корутина, но await вне декоратора не применяется. — Фактически, все задачи получают первую сохраненную корутину (для x=0), которая всегда возвращает 0. 3️⃣ Чтобы исправить код нужно использовать functools.wraps и сделать декоратор асинхронным. Пишите свои варианты решения в комментариях 🔽 @python_job_interview

Как сделать помощника, который помнит контекст? Голосовые ассистенты и LLM-сервисы — это круто, но... они часто не знают конт
Как сделать помощника, который помнит контекст? Голосовые ассистенты и LLM-сервисы — это круто, но... они часто не знают контекста. Или забывают, что вы им сказали полминуты назад. Что, если помощник действительно помнил бы: — кто вы — что вы уже спрашивали — и какие у вас были кейсы в прошлом? На вебинаре Яндекса расскажут, как это реализовать через RAG + YDB: 🧠 память с помощью эмбеддингов 🔍 векторный поиск с фильтрацией ⚙️ масштабируемое и быстрое решение на SQL Подходит как для внутренних ИИ-сервисов, так и для клиентских продуктов.

⚡ NVIDIA показала 7 простых «приемов» на Python, которые мгновенно ускоряют Data Science-пайплайны — без переписывания кода.
+7
⚡ NVIDIA показала 7 простых «приемов» на Python, которые мгновенно ускоряют Data Science-пайплайны — без переписывания кода. 🔹 В чём идея? Многие привычные библиотеки (pandas, NumPy, scikit-learn) можно заменить их GPU-версией, сохранив API. Это даёт прирост скорости в десятки раз. 🟠 Drop-in замены в коде: - pandas%load_ext cudf.pandas - polars.collect(engine="gpu") - scikit-learn%load_ext cuml.accel - xgboostdevice="cuda" - umap%load_ext cuml.accel - hdbscan%load_ext cuml.accel - networkx%env NX_CUGRAPH_AUTOCONFIG=True 🚀 Плюсы: - Минимальные изменения кода (API почти идентичен). - GPU-ускорение: от 10х до 100х быстрее на больших данных. - Отлично подходит для ETL, ML и обработки сигналов. Если ты работаешь с большими данными в Python, достаточно «заменить импорт» и получить колоссальный прирост скорости без боли и переписывания кода. 🚀 Подробнее: developer.nvidia.com/blog/7-drop-in-replacements-to-instantly-speed-up-your-python-data-science-workflows @data_analysis_ml

🖥 Нужно временно отключить все принты — например, в проде или при юнит-тестах? Этот трюк нужен, чтобы временно отключить принты не удаляя и не комментируя строки вручную. На экране простой способ сделать это через контекстный менеджер — без сторонних библиотек и без комментирования строк.

import sys, os
from contextlib import contextmanager

@contextmanager
def suppress_print():
    saved = sys.stdout
    sys.stdout = open(os.devnull, 'w')
    yield
    sys.stdout.close()
    sys.stdout = saved

Пример:

print("Это видно")
with suppress_print():
    print("А это — нет")
print("Снова видно")

🧠 Почему asyncio вызывает боль? Потому что даже простая ошибка может сломать всю цепочку задач. 🐍 tinyio — это минималистич
🧠 Почему asyncio вызывает боль? Потому что даже простая ошибка может сломать всю цепочку задач. 🐍 tinyio — это минималистичный event loop для Python (всего ~200 строк), который работает через yield, а не await, и делает асинхронность прозрачной. Что умеет: • yield вместо await: проще отлаживать и понимать • Параллельный запуск: yield [task1(), task2()] • Фоновые задачи: yield {task1(), task2()} • Прерывание всех задач при одной ошибке • Встроенные Lock, Semaphore, Event, timeout Пример:

def slow_add(x):
    yield tinyio.sleep(1)
    return x + 1

def main():
    a, b = yield [slow_add(1), slow_add(2)]
    return a + b

Loop().run(main())  # → 5
Когда нужно просто и понятно — tinyio делает то, что должен. Никакой магии. 🔗 https://github.com/patrick-kidger/tinyio @pythonl

🚀 УСКОРЕНИЕ КОДА ЗА СЧЁТ ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ 💡 Используй локальные переменные внутри циклов — это может ускорить выполнение на 20–30%, особенно в критичных по времени участках. Почему это работает? В Python доступ к локальной переменной быстрее, чем к глобальной или объектной, потому что локальные хранятся в массиве, а не в словаре. Пример:

# Медленно: обращение к свойствам объекта в цикле
class Processor:
    def __init__(self, data):
        self.data = data

    def compute(self):
        total = 0
        for item in self.data:
            total += item * item
        return total

# Быстрее: кэшируем ссылку на data как локальную переменную
class Processor:
    def __init__(self, data):
        self.data = data

    def compute(self):
        data = self.data  # локальная переменная
        total = 0
        for item in data:
            total += item * item
        return total
# Прирост в скорости особенно заметен при больших объёмах данных```