Библиотека собеса по Python | вопросы с собеседований
6.12K subscribers
596 photos
9 videos
284 links
Вопросы с собеседований по Python и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/6587aafa

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Что такое ключевое слово await?

Этот оператор можно применять исключительно внутри асинхронной функции, определенной с помощью async def. await позволяет избежать блокировки основного потока программы во время ожидания результатов асинхронных функций.

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

Чаще всего await применяется при вызове асинхронных функций и методов для ожидания их результатов. Также он может использоваться с объектами asyncio.Future и asyncio.Task, чтобы дождаться их завершения.

Если await вызывается для корутины, выполнение текущей корутины приостанавливается до тех пор, пока не завершится вызванная корутина.


Библиотека собеса по Python
🆒 Собираем идеальный GUI на Python: 8 библиотек 2025 года

➡️ Tkinter — просто и по делу
➡️ PyQt — строго и функционально
➡️ Kivy — на мобилку и не только

Мы собрали лучшие библиотеки для создания графических интерфейсов на Python в 2025 — от классики до свежих решений.

🐸 Хотите красивый и удобный UI? Начните с этого списка: https://proglib.io/sh/8Z6Yl7fMgS

Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
✍🏻 Как и для чего используется %s?

%s
— это Спецификатор формата и он используется для форматирования строк.
Он позволяет вставлять значения других типов (числа, объекты и т. д.) в строковые выражения, автоматически преобразуя их к строковому представлению.

%s заменяется на строковое представление переданного значения в процессе форматирования. Это удобный способ интерполяции строк.
Помимо простой интерполяции, %s полезен для оформления вывода данных в консоль, логгирования, составления SQL-запросов с подстановкой значений и других задач работы со строками.


Библиотека собеса по Python
Как понять хешируемый ли объект?


1️⃣ Объект должен иметь метод `__hash__()`, который возвращает целое число — это и есть хеш объекта.

2️⃣ Хеш-значение не должно меняться в течение жизни объекта. Это важно, чтобы объект можно было использовать как ключ в словарях или элемент в множествах.

3️⃣Объект должен поддерживать сравнение через `__eq__()`. Если два объекта равны (по ==), они обязаны иметь одинаковый хеш.

Простое правило:
— Неизменяемые объекты в Python (например, int, float, str, tuple, frozenset) — хешируемы.
— Изменяемые объекты (например,
list, dict, set) — не хешируемы.

Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
📚 13 ресурсов, чтобы выучить математику с нуля — подборка, которую просили

Хочешь прокачаться в математике для Data Science, ML или просто чтобы понимать, что происходит в формулах. Лови список лучших источников, которые собрали на Proglib.

➡️ Что внутри:
• Книги: от Пойи и Перельмана до Хофштадтера
• Советы: как учить, с чего начать, как не сдаться
• Математика для Data Science: разбор тем и формул
• Ссылки на форумы и задачи
• Как не бояться, если всё кажется сложным
• Что читать, если ты гуманитарий и страдал от школьной алгебры

✍️ Простой язык, много примеров и ноль академического занудства.

🔵 Для полного понимания Архитектуры, забирайте наш курс → «Архитектуры и шаблоны проектирования»

👉 Читай статью тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое сопрограмма (coroutine) в Python?

Сопрограмма (coroutine) — это расширенная подпрограмма, которая может приостанавливать выполнение и позже продолжать с того же места, а также поддерживает несколько точек входа.

🚩 В Python сопрограммы реализуются с помощью генераторов и, начиная с Python 3.5, через ключевые слова `async` и `await`.

🔎 Благодаря сопрограммам мы можем:
— писать асинхронный код без коллбеков
— выполнять неблокирующие операции в одном потоке
— использовать кооперативную многозадачность

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

Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🙈 Что скрывает дисперсия: разгадка секрета точных ML-моделей

Представьте, что вы строите модель, которая прекрасно работает на тренировочных данных, но стоит подать ей новые примеры... и всё рушится. Знакомо? За этим почти всегда скрывается неправильное обращение с дисперсией.

🧐 Но что, если есть простая формула, способная:

• Мгновенно определить, насколько «разбросаны» ваши данные

• Значительно улучшить точность ваших ML-моделей

• Помочь обнаружить аномалии, которые вы раньше не замечали

В нашем вебинаре мы раскрываем все секреты дисперсии — без сложных терминов и занудных объяснений. Вы узнаете, почему дисперсия — как соль: без нее все пресно, а с переизбытком — несъедобно.

Хотите узнать, как находить идеальный баланс в своих моделях, причем тут Random Forest и много другого о Data Science?

➡️Тогда смотрите бесплатный вебинар от Proglib: https://proglib.io/w/1ae24822
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Что такое миксины?

Миксин — это паттерн проектирования в объектно-ориентированном программировании, при котором в цепочку наследования добавляется вспомогательный класс с небольшой изолированной функциональностью.

Миксины не предназначены для самостоятельного использования — они добавляют дополнительные методы или свойства другим классам через множественное наследование. Их цель — повторное использование кода без создания иерархий, перегруженных логикой.

Пример миксина:
class NowMixin:
def now(self):
return datetime.datetime.utcnow()


Теперь любой класс, унаследованный от NowMixin, будет обладать методом now():
class Logger(NowMixin):
pass

logger = Logger()
print(logger.now())


🚩 Особенности:
— В названиях миксинов часто добавляют суффикс Mixin, чтобы обозначить их вспомогательную природу
— Миксин — это технически обычный класс, но используемый как «добавка» к основному поведению
— Позволяет избежать дублирования кода и сделать архитектуру гибче

Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
🖼 ТОП-5 структур данных для обработки изображений

Хотите разобраться, как обрабатывать изображения в компьютерном зрении или графике?

Всё начинается с правильных структур данных. Они помогают хранить и анализировать пиксели, их связи и расположение.

👉 В этой статье — подборка топ решений и советы, как их использовать.

Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Как Python ищет модули при импорте?

Когда в коде используется import, Python ищет модуль в директориях, указанных в списке sys.path. Этот список — обычный список Python, содержащий пути к папкам, где интерпретатор будет искать модули.

🔎 По умолчанию sys.path включает:
1. Директорию, из которой запущен скрипт
2. Пути из переменной окружения PYTHONPATH (если она установлена)
3. Стандартные директории установки Python
4. Иногда — архивы .zip, если они находятся в пути

Python идёт по списку сверху вниз и использует первый найденный модуль с совпадающим именем.

🔎 Дополнительно:
sys.path можно изменять вручную в коде
— Для локальной приоритизации модулей — кладите их рядом со скриптом
— Виртуальные окружения добавляют свои пути автоматически

Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Нужно посчитать 100 уравнений. Стоит ли использовать треды?

Нет, треды в этой задаче не подойдут, так как нет ввода-вывода.

Использование потоков приведет к лишним затратам времени на переключение контекста. Для сложных математических вычислений лучше использовать многопроцессорность, либо использовать фреймворк для распределённых задач, например, Celery, или подключать вычисления через C-библиотеки для повышения производительности.

Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🙂 Раскрываем секрет собственных векторов: математическое оружие на собеседовании

Что объединяет успешный собес и продвинутый анализ данных? Оба требуют способности выделять главное из информационного шума!

В мире данных этот суперскилл называется методом главных компонент (PCA) — это как рентген для ваших данных, который мгновенно показывает всю суть, отбрасывая неважные детали.

Например, мы проанализировали 453 акции компаний из списка S&P 500 и выяснили, что всего одна главная компонента объясняет 38% всей динамики рынка. Как такое возможно?

😘 Расскажем на воркшопе «Математика машинного обучения на практике» 21 апреля!

Вы будете работать с реальными данными, научитесь выявлять скрытые закономерности и применять эти инсайты в своих проектах.

Стоимость: 3990 ₽

Не беспокойтесь, если теоретическая база пока хромает — вы можете заранее посмотреть запись нашего вебинара по основам по ссылке ниже.

➡️ Забронировать место на воркшопе: https://proglib.io/w/f0157e5f
Please open Telegram to view this post
VIEW IN TELEGRAM
💭 Что такое интроспекция в 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🌐 Что такое Middleware в Django?

Middleware — это специальный компонент, который обрабатывает входящие запросы и/или исходящие ответы в веб-приложении. Он используется для выполнения общих задач до или после того, как запрос попадёт в обработчик (view).

Например, можно:
Добавить заголовки в ответ
Проверить авторизацию
Логировать обращения
Обработать ошибки

🚩Как устроен Middleware на уровне кода

Обычно middleware реализует два метода:
process_request(request) — вызывается до view-функции
process_response(request, response) — вызывается после выполнения view

Каждый метод должен вернуть объект запроса/ответа для продолжения цепочки обработки, либо вызвать исключение, чтобы прервать выполнение.

🚩 Как подключить middleware

В Django — через настройку MIDDLEWARE:
MIDDLEWARE = [
'myproject.middleware.CustomMiddleware',
...
]


Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
От многомерности к сути: чему нас учит PCA

На собеседовании важно уметь выделить главное — свои сильные стороны, мышление и ценности. Это помогает справляться со стрессом, неожиданными вопросами и субъективной оценкой.

В машинном обучении есть похожий подход — PCA (метод главных компонент). Он сокращает размерность данных, устраняя шум и второстепенные детали, и помогает сфокусироваться на самом важном.

В новой статье мы разберём:
• Как работает PCA
• Зачем он нужен
• Как применять его на практике — например, для анализа доходностей акций S&P 500

🐸 Подробнее: https://proglib.io/sh/uXsDlt75MY

Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
🔗 Что такое code coupling (связанность модулей) и почему это важно?

Связанность модулей (или coupling) — это термин, который описывает степень зависимости между различными частями программной системы. Чем меньше зависимость между модулями, тем легче поддерживать, тестировать и расширять систему.

➡️ Почему это важно

1️⃣ Низкая связность (Low Coupling):
— Модули взаимодействуют через четкие интерфейсы, минимизируя зависимости
— Изменения в одном модуле не требуют изменений в других
— Это облегчает поддержку и развитие системы

2️⃣ Высокая связность (High Coupling):
— Модули сильно зависят друг от друга
— Изменения в одном модуле потребуют изменений в других
— Такая система сложна в поддержке и тестировании

➡️ Пример из жизни

Представьте, что у вас есть два класса. Если один класс напрямую зависит от внутренней реализации другого — это высокая связность. Если же классы взаимодействуют только через четко определенные интерфейсы — это низкая связность.

➡️ Стремитесь к слабой связности, чтобы ваши системы были более устойчивыми, масштабируемыми и удобными в поддержке.

Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Приручи алгоритмы: из формул в код за один воркшоп

Готовы превратить сложную теорию машинного обучения в практические навыки? Тогда приходите на наш воркшоп, который пройдет 21 апреля.

Что вас ждет на воркшопе:
🟢 Работа с реальными данными — никаких учебных датасетов, только то, что встречается в настоящих проектах.

🟢Снижение размерности с PCA — научитесь выделять главное из информационного шума.

🟢Случайный лес vs градиентный бустинг — разберемся, в чём ключевое различие и когда какой алгоритм эффективнее.

🟢Мастерство гиперпараметров — освоите тонкую настройку моделей для максимальной точности.

На нашем воркшопе вы не просто слушаете — вы делаете сами! Вы будете писать код на Python, применять популярные библиотеки и сразу видеть результат своей работы.

А самое ценное: каждый участник получит персональный code review от Марии Горденко — инженера-программиста, старшего преподавателя НИУ ВШЭ, руководителя магистратуры от ГК Самолет и Альфа-Банка.

Когда: 21 апреля
💸Стоимость: всего 3990₽

Только сегодня, до конца дня: 10 мест по промокоду kulich → 2 990 ₽.

➡️ Записаться на воркшоп: https://proglib.io/w/f0157e5f
Что такое жадные алгоритмы и в каких случаях они применяются?

Жадные алгоритмы — это приближённые алгоритмы, которые на каждом шаге выбирают локально наилучшее решение в надежде, что оно приведёт к глобально оптимальному результату.

Когда используются:
👉 Когда точное решение задачи требует слишком много времени
👉 Когда высокая точность не критична
👉 Когда нужно простое и быстрое решение

Преимущества:
👉 Простая логика
👉 Быстрая реализация
👉 Высокая скорость работы
👉 Часто дают достаточно близкий к оптимальному результат

Недостатки:
👉 Не всегда гарантируют глобальный оптимум
👉 Подход работает не для всех задач (зависит от свойства задачи — например, задачи с оптимальным подструктурированием)

Примеры:
📍 Алгоритм Крускала и Прима (минимальное остовное дерево)
📍 Алгоритм Дейкстры (поиск кратчайшего пути)
📍 Сдача минимальным количеством монет

Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM