Библиотека собеса по Python | вопросы с собеседований
前往频道在 Telegram
Вопросы с собеседований по Python и ответы на них. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/6587aafa Для обратной связи: @proglibrary_feeedback_bot
显示更多5 994
订阅者
-124 小时
-47 天
-2530 天
帖子存档
🪞 Что такое отображение (mapping)?
Отображение — это тип контейнера, в котором элементы хранятся в виде пар ключ–значение. Такой объект предоставляет доступ к значениям по ключу, а не по индексу, как в списках. В Python отображения реализуют интерфейсы абстрактных базовых классов
collections.abc.Mapping (для неизменяемых) и collections.abc.MutableMapping (для изменяемых).
К основным методам отображения относятся:
✅ get() — безопасное получение значения по ключу
✅ items(), keys(), values() — для перебора элементов, ключей и значений соответственно
✅ update(), pop(), setdefault() и др. — для изменяемых отображений
Примеры отображений в Python:
✅ dict — стандартный словарь
✅ defaultdict — словарь с значениями по умолчанию
✅ OrderedDict — сохраняет порядок добавления элементов (до Python 3.7)
✅ Counter — словарь для подсчёта элементов
Библиотека собеса по PythonRepost from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
❓ Зачем дата-сайентисту дисперсия
Дисперсия — ключевой статистический показатель, который помогает оценить изменчивость данных. Для дата-сайентистов она критична при:
👉 Оценке и интерпретации результатов моделей
👉 Понимании поведения алгоритмов машинного обучения
👉 Снижении ошибок при построении предсказаний
В этой статье разберём, как правильно использовать дисперсию в Data Science и как она влияет на работу алгоритмов, например, в модели Random Forest.
👉 Читайте, чтобы понять, как измерять и учитывать дисперсию: https://proglib.io/sh/GDKYJQdAI2
Библиотека дата-сайентиста
🆚 Зачем нужен паттерн Фасад и чем он отличается от Адаптера?
Используется для создания простого и понятного интерфейса поверх сложной или запутанной подсистемы.
🚩 Зачем нужен:
Когда взаимодействовать с подсистемой напрямую неудобно — слишком много деталей, низкоуровневый API или несогласованные интерфейсы.
🚩 Пример из Python:
Работа с архивами — модули gzip, tarfile, zipfile имеют разный интерфейс. Чтобы скрыть различия, можно сделать единый фасад-класс, который всё упростит.
🚩 Фасад ≠ Адаптер
— Фасад упрощает работу с подсистемой
— Адаптер делает несовместимые интерфейсы совместимыми
Их можно комбинировать: адаптировать каждый модуль, а сверху построить единый фасад.
Библиотека собеса по Python
❓ Что такое жадные алгоритмы и в каких случаях они применяются?
Жадные алгоритмы — это приближённые алгоритмы, которые на каждом шаге выбирают локально наилучшее решение в надежде, что оно приведёт к глобально оптимальному результату.
Когда используются:
👉 Когда точное решение задачи требует слишком много времени
👉 Когда высокая точность не критична
👉 Когда нужно простое и быстрое решение
Преимущества:
👉 Простая логика
👉 Быстрая реализация
👉 Высокая скорость работы
👉 Часто дают достаточно близкий к оптимальному результат
Недостатки:
👉 Не всегда гарантируют глобальный оптимум
👉 Подход работает не для всех задач (зависит от свойства задачи — например, задачи с оптимальным подструктурированием)
Примеры:
📍 Алгоритм Крускала и Прима (минимальное остовное дерево)
📍 Алгоритм Дейкстры (поиск кратчайшего пути)
📍 Сдача минимальным количеством монет
Библиотека собеса по Python
🚀 Приручи алгоритмы: из формул в код за один воркшоп
Готовы превратить сложную теорию машинного обучения в практические навыки? Тогда приходите на наш воркшоп, который пройдет 21 апреля.
Что вас ждет на воркшопе:
🟢 Работа с реальными данными — никаких учебных датасетов, только то, что встречается в настоящих проектах.
🟢Снижение размерности с PCA — научитесь выделять главное из информационного шума.
🟢Случайный лес vs градиентный бустинг — разберемся, в чём ключевое различие и когда какой алгоритм эффективнее.
🟢Мастерство гиперпараметров — освоите тонкую настройку моделей для максимальной точности.
На нашем воркшопе вы не просто слушаете — вы делаете сами! Вы будете писать код на Python, применять популярные библиотеки и сразу видеть результат своей работы.
А самое ценное: каждый участник получит персональный code review от Марии Горденко — инженера-программиста, старшего преподавателя НИУ ВШЭ, руководителя магистратуры от ГК Самолет и Альфа-Банка.
⏰ Когда: 21 апреля
💸Стоимость: всего 3990₽
Только сегодня, до конца дня: 10 мест по промокоду kulich → 2 990 ₽.
➡️ Записаться на воркшоп: https://proglib.io/w/f0157e5f
🔗 Что такое code coupling (связанность модулей) и почему это важно?
Связанность модулей (или coupling) — это термин, который описывает степень зависимости между различными частями программной системы. Чем меньше зависимость между модулями, тем легче поддерживать, тестировать и расширять систему.
➡️ Почему это важно
1️⃣ Низкая связность (Low Coupling):
— Модули взаимодействуют через четкие интерфейсы, минимизируя зависимости
— Изменения в одном модуле не требуют изменений в других
— Это облегчает поддержку и развитие системы
2️⃣ Высокая связность (High Coupling):
— Модули сильно зависят друг от друга
— Изменения в одном модуле потребуют изменений в других
— Такая система сложна в поддержке и тестировании
➡️ Пример из жизни
Представьте, что у вас есть два класса. Если один класс напрямую зависит от внутренней реализации другого — это высокая связность. Если же классы взаимодействуют только через четко определенные интерфейсы — это низкая связность.
➡️ Стремитесь к слабой связности, чтобы ваши системы были более устойчивыми, масштабируемыми и удобными в поддержке.
Библиотека собеса по Python
Repost from Библиотека питониста | Python, Django, Flask
➕ От многомерности к сути: чему нас учит PCA
На собеседовании важно уметь выделить главное — свои сильные стороны, мышление и ценности. Это помогает справляться со стрессом, неожиданными вопросами и субъективной оценкой.
⏩ В машинном обучении есть похожий подход — PCA (метод главных компонент). Он сокращает размерность данных, устраняя шум и второстепенные детали, и помогает сфокусироваться на самом важном.
✅ В новой статье мы разберём:
• Как работает PCA
• Зачем он нужен
• Как применять его на практике — например, для анализа доходностей акций S&P 500
🐸 Подробнее: https://proglib.io/sh/uXsDlt75MY
Библиотека питониста
🌐 Что такое Middleware в Django?
Middleware — это специальный компонент, который обрабатывает входящие запросы и/или исходящие ответы в веб-приложении. Он используется для выполнения общих задач до или после того, как запрос попадёт в обработчик (view).
Например, можно:
— Добавить заголовки в ответ
— Проверить авторизацию
— Логировать обращения
— Обработать ошибки
🚩Как устроен Middleware на уровне кода
Обычно middleware реализует два метода:
—
process_request(request) — вызывается до view-функции
— process_response(request, response) — вызывается после выполнения view
Каждый метод должен вернуть объект запроса/ответа для продолжения цепочки обработки, либо вызвать исключение, чтобы прервать выполнение.
🚩 Как подключить middleware
В Django — через настройку MIDDLEWARE:
MIDDLEWARE = [
'myproject.middleware.CustomMiddleware',
...
]
Библиотека собеса по Python💭 Что такое интроспекция в Python?
Интроспекция — это способность программы изучать объекты во время выполнения: узнавать их тип, структуру, атрибуты, методы и даже иерархию наследования.
🧩 Это мощный инструмент, встроенный в Python (а также доступный в других языках, например Java, PHP, Ruby). Он позволяет, например:
— Проверить тип объекта с помощью type()
— Проверить, к какому классу принадлежит объект — isinstance(obj, Class)
— Получить список доступных атрибутов и методов — dir(obj)
— Изучить содержимое объекта — через __dict__
Пример:
class Foo:
def __init__(self, val):
self.x = val
def bar(self):
return self.x
obj = Foo(5)
print(dir(obj))
Результат:
['__class__', '__dict__', ..., 'bar', 'x']Это удобно для отладки, разработки, рефлексии, создания универсальных функций, которые могут работать с разными типами данных. Библиотека собеса по Python
🙂 Раскрываем секрет собственных векторов: математическое оружие на собеседовании
Что объединяет успешный собес и продвинутый анализ данных? Оба требуют способности выделять главное из информационного шума!
В мире данных этот суперскилл называется методом главных компонент (PCA) — это как рентген для ваших данных, который мгновенно показывает всю суть, отбрасывая неважные детали.
Например, мы проанализировали 453 акции компаний из списка S&P 500 и выяснили, что всего одна главная компонента объясняет 38% всей динамики рынка. Как такое возможно?
😘 Расскажем на воркшопе «Математика машинного обучения на практике» 21 апреля!
Вы будете работать с реальными данными, научитесь выявлять скрытые закономерности и применять эти инсайты в своих проектах.
Стоимость: 3990 ₽
Не беспокойтесь, если теоретическая база пока хромает — вы можете заранее посмотреть запись нашего вебинара по основам по ссылке ниже.
➡️ Забронировать место на воркшопе: https://proglib.io/w/f0157e5f
🖥 Нужно посчитать 100 уравнений. Стоит ли использовать треды?
Нет, треды в этой задаче не подойдут, так как нет ввода-вывода.
Использование потоков приведет к лишним затратам времени на переключение контекста. Для сложных математических вычислений лучше использовать многопроцессорность, либо использовать фреймворк для распределённых задач, например, Celery, или подключать вычисления через C-библиотеки для повышения производительности.
Библиотека собеса по Python
🔎 Как Python ищет модули при импорте?
Когда в коде используется
import, Python ищет модуль в директориях, указанных в списке sys.path. Этот список — обычный список Python, содержащий пути к папкам, где интерпретатор будет искать модули.
🔎 По умолчанию sys.path включает:
1. Директорию, из которой запущен скрипт
2. Пути из переменной окружения PYTHONPATH (если она установлена)
3. Стандартные директории установки Python
4. Иногда — архивы .zip, если они находятся в пути
Python идёт по списку сверху вниз и использует первый найденный модуль с совпадающим именем.
🔎 Дополнительно:
— sys.path можно изменять вручную в коде
— Для локальной приоритизации модулей — кладите их рядом со скриптом
— Виртуальные окружения добавляют свои пути автоматически
Библиотека собеса по PythonRepost from Библиотека питониста | Python, Django, Flask
🖼 ТОП-5 структур данных для обработки изображений
Хотите разобраться, как обрабатывать изображения в компьютерном зрении или графике?
Всё начинается с правильных структур данных. Они помогают хранить и анализировать пиксели, их связи и расположение.
👉 В этой статье — подборка топ решений и советы, как их использовать.
Библиотека питониста
💻 Что такое миксины?
Миксин — это паттерн проектирования в объектно-ориентированном программировании, при котором в цепочку наследования добавляется вспомогательный класс с небольшой изолированной функциональностью.
Миксины не предназначены для самостоятельного использования — они добавляют дополнительные методы или свойства другим классам через множественное наследование. Их цель — повторное использование кода без создания иерархий, перегруженных логикой.
✅ Пример миксина:
class NowMixin:
def now(self):
return datetime.datetime.utcnow()
✅ Теперь любой класс, унаследованный от NowMixin, будет обладать методом now():
class Logger(NowMixin):
pass
logger = Logger()
print(logger.now())
🚩 Особенности:
— В названиях миксинов часто добавляют суффикс Mixin, чтобы обозначить их вспомогательную природу
— Миксин — это технически обычный класс, но используемый как «добавка» к основному поведению
— Позволяет избежать дублирования кода и сделать архитектуру гибче
Библиотека собеса по PythonВы никогда не задумывались, как «Самокат» доставляет заказы за 15 минут?
Это не иллюзия, не фокус и не магия вне Хогвартса — это аналитика данных.
И 17 апреля в 19:00 мск онлайн-школа Data Science karpovꓸcourses приглашает заглянуть за кулисы и узнать, как это работает на самом деле на бесплатном вебинаре «Продуктовая аналитика „под капотом“ сервиса быстрой доставки „Самокат“».
Роман Стрекалов, руководитель аналитики операционных продуктов в ecom.tech (Самокат), расскажет какие инструменты помогают курьерам и партнерам сервиса доставлять заказы за минуты, и какие навыки нужны для того, чтобы создать что-то подобное в любом другом проекте.
Вы еще совсем новичок в сфере аналитики? Или уже в теме, но стремитесь к более масштабным задачам?
Встреча в любом случае будет полезной! А в конце все участники получат скидку на обучение аналитике в karpovꓸcourses и карьерный гайд.
Регистрация по ссылке: https://clck.ru/3LH476/?erid=2Vtzqv8mcsT
Реклама. ООО «Карпов Курсы», ИНН: 7811764627, erid: 2Vtzqv8mcsT
🙈 Что скрывает дисперсия: разгадка секрета точных ML-моделей
Представьте, что вы строите модель, которая прекрасно работает на тренировочных данных, но стоит подать ей новые примеры... и всё рушится. Знакомо? За этим почти всегда скрывается неправильное обращение с дисперсией.
🧐 Но что, если есть простая формула, способная:
• Мгновенно определить, насколько «разбросаны» ваши данные
• Значительно улучшить точность ваших ML-моделей
• Помочь обнаружить аномалии, которые вы раньше не замечали
В нашем вебинаре мы раскрываем все секреты дисперсии — без сложных терминов и занудных объяснений. Вы узнаете, почему дисперсия — как соль: без нее все пресно, а с переизбытком — несъедобно.
Хотите узнать, как находить идеальный баланс в своих моделях, причем тут Random Forest и много другого о Data Science?
➡️Тогда смотрите бесплатный вебинар от Proglib: https://proglib.io/w/1ae24822
❔ Что такое сопрограмма (coroutine) в Python?
Сопрограмма (coroutine) — это расширенная подпрограмма, которая может приостанавливать выполнение и позже продолжать с того же места, а также поддерживает несколько точек входа.
🚩 В Python сопрограммы реализуются с помощью генераторов и, начиная с Python 3.5, через ключевые слова `async` и `await`.
🔎 Благодаря сопрограммам мы можем:
— писать асинхронный код без коллбеков
— выполнять неблокирующие операции в одном потоке
— использовать кооперативную многозадачность
🔎Сопрограммы позволяют писать асинхронный код так же просто, как и обычный синхронный, что делает его намного удобнее и понятнее.
Библиотека собеса по Python
Repost from Proglib.academy | IT-курсы
📚 13 ресурсов, чтобы выучить математику с нуля — подборка, которую просили
Хочешь прокачаться в математике для Data Science, ML или просто чтобы понимать, что происходит в формулах. Лови список лучших источников, которые собрали на Proglib.
➡️ Что внутри:
• Книги: от Пойи и Перельмана до Хофштадтера
• Советы: как учить, с чего начать, как не сдаться
• Математика для Data Science: разбор тем и формул
• Ссылки на форумы и задачи
• Как не бояться, если всё кажется сложным
• Что читать, если ты гуманитарий и страдал от школьной алгебры
✍️ Простой язык, много примеров и ноль академического занудства.
🔵 Для полного понимания Архитектуры, забирайте наш курс → «Архитектуры и шаблоны проектирования»
👉 Читай статью тут
❓ Как понять хешируемый ли объект?
1️⃣ Объект должен иметь метод `__hash__()`, который возвращает целое число — это и есть хеш объекта.
2️⃣ Хеш-значение не должно меняться в течение жизни объекта. Это важно, чтобы объект можно было использовать как ключ в словарях или элемент в множествах.
3️⃣Объект должен поддерживать сравнение через `__eq__()`. Если два объекта равны (по
==), они обязаны иметь одинаковый хеш.
Простое правило:
— Неизменяемые объекты в Python (например, int, float, str, tuple, frozenset) — хешируемы.
— Изменяемые объекты (например, list, dict, set) — не хешируемы.
Библиотека собеса по Python✍🏻 Как и для чего используется %s?
%s — это Спецификатор формата и он используется для форматирования строк.
Он позволяет вставлять значения других типов (числа, объекты и т. д.) в строковые выражения, автоматически преобразуя их к строковому представлению.
%s заменяется на строковое представление переданного значения в процессе форматирования. Это удобный способ интерполяции строк.
Помимо простой интерполяции, %s полезен для оформления вывода данных в консоль, логгирования, составления SQL-запросов с подстановкой значений и других задач работы со строками.
Библиотека собеса по Python
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
