Библиотека собеса по Python | вопросы с собеседований
6.09K subscribers
643 photos
10 videos
433 links
Вопросы с собеседований по Python и ответы на них.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
🤔 «Начни сразу с нейросетей — зачем тебе логрегрессия?»

Это один из худших советов для начинающего ML-разработчика. Зрелость — это понимать, где простого достаточно, а не тянуть трансформеры на любую задачу из-за хайпа.

Классика ML — это не допотопная теория, а база (bias/variance, деревья, метрики), без которой не понять Deep Learning.

⚡️ Хотите освоить этот фундамент на реальных задачах? Приходите на наш курс по классическому ML. Только хардкор, только продовые задачи!

📆 Старт — 12 августа.

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

🎁 Последний день промокода Earlybird на скидку 10.000₽.

👉 Не упустите шанс!
1👍1
Зачем нужен select_related и чем он отличается от prefetch_related в Django?

select_related делает SQL JOIN и грузит связанные объекты сразу.
prefetch_related делает отдельный запрос и связывает их в Python.
Первый — для ForeignKey/OneToOne, второй — для ManyToMany/Reverse FK.


Библиотека собеса по Python
👍2😁1
Почему Flask называют микрофреймворком?

Flask называют «микро», поскольку его основной набор функций относительно ограничен: маршрутизация, обработка запросов и модули разработки — вот и всё, что есть в нём. Многие возможности, такие как ORM, кэширование и аутентификация, были доступны в качестве дополнительных расширений, но конкурирующие фреймворки (например, Django) включали их по умолчанию. Архитектура «небольшое ядро + расширения» делает его «микро-» фреймворком, с которым гораздо проще начать работать и масштабировать.

Библиотека собеса по Python
👍3🔥1
Насколько длинным может быть идентификатор в Flask?

В Flask идентификатор может быть любой длины, поскольку Python чувствителен к регистру, поэтому он обрабатывает заглавные и строчные буквы по-разному. Кроме того, есть зарезервированные ключевые слова, которые пользователи не могут использовать. Некоторые из них перечислены ниже:

def, false, import, not, true, as, del, Finally, in, or, try, assert, elseif, for, is, pass, while, break, else, from, lambda, print, with, class, except, global, none, raise, yield, continue, exec, if, nonlocal, return

Существуют также некоторые стандарты, которым пользователи должны следовать при наименовании идентификатора. Имя должно начинаться с символа, подчёркивания или буквы от A до Z или от a до z, а остальные символы в имени идентификатора могут быть любыми из следующих: A-Z или a-z, 0-9 или.


Библиотека собеса по Python
🤔41
Зачем нужна pass?

Конструкция pass в Python представляет собой пустой оператор. Она применяется в тех случаях, когда синтаксис требует наличия оператора, но выполнять никаких действий не требуется. Это может быть особенно полезно при создании заглушек для функций, которые будут реализованы позже, или в циклах, где на текущей итерации не нужно выполнять никаких операций.

Библиотека собеса по Python
👍9
Какова роль параметров _value и __value?

_value — одинарное подчеркивание в начале имени указывает на то, что этот параметр не предназначен для использования за пределами функции. Это всего лишь соглашение, а не строгое правило языка.

__value — двойное подчеркивание обозначает, что это имя зарезервировано Python для специальных целей, таких как init для конструктора класса. Такие параметры могут выполнять дополнительные функции.

Библиотека собеса по Python
👍2
Что такое сигналы Django?

При каждом изменении модели нам может потребоваться инициировать определённые действия.
Django предлагает элегантный способ обработки этих изменений с помощью сигналов. Сигналы — это утилиты, позволяющие связывать события с действиями. Мы можем реализовать их, разработав функцию, которая будет запускаться при вызове сигнала.


Библиотека собеса по Python
👍3
Какое расширение используется для подключения к базе данных во Flask?

Расширение улучшает управление базами данных и взаимодействие с ними во время разработки, устраняя необходимость написания простых SQL-запросов. PostgreSQL, SQLite и MySQL — лишь некоторые из поддерживаемых Flask СУБД. Для подключения к базам данных требуется плагин Flask-SQLAlchemy.

Библиотека собеса по Python
🤔3👍2
Как получить IP-адрес посетителя в Flask?

Ответ: Чтобы получить IP-адрес посетителя во Flask, мы используем метод request.remote_addr. Ниже представлена его реализация.

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def get_visitor_ip():
visitor_ip = request.remote_addr
return f"Visitor's IP address is: {visitor_ip}"

if __name__ == '__main__':
app.run(debug=True)


Библиотека собеса по Python
👍3
Объясните, как в Python осуществляется управление памятью.

В Python объекты и структуры данных data structures находятся в закрытой динамически выделяемой области private heap, которая управляется менеджером памяти Python. Он делегирует часть работы программам распределения ресурсов allocators, закрепленным за конкретными объектами, и одновременно с этим следит, чтобы они не выходили за пределы динамически выделяемой области.

По факту данной областью управляет интерпретатор interpreter. Пользователь никак не контролирует данный процесс, даже когда манипулирует ссылками объектов на блоки памяти внутри динаической области. Менеджер памяти Python распределяет пространство динамической области среди объектов и другие внутренние буферы по требованию.


Библиотека собеса по Python
3🔥3👍1
Что делает %s?

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

Библиотека собеса по Python
👍4
🤔 Зачем вообще понимать, как работает ML?

Сейчас многие просто запускают модельку в sklearn — и радуются точности 0.92.

Вроде всё работает… но почему?
А когда сломается — что делать?


Машинное обучение — это система, которую можно понять.

Если знаешь, что делает градиентный спуск, зачем нужен бустинг и как дерево принимает решения — ты не просто «запускаешь», ты управляешь моделью.

👉 Мы сделали курс, чтобы в это было реально въехать:

— без сложных формул;
— с интуитивными объяснениями;
— от простого к сложному.

Если хочешь перейти от «гуглю код» к «понимаю, как это работает» — ты по адресу!

Стартуем в сентябре — бронируй место на курсе уже сейчас
👍1
Объясните, как в Python осуществляется управление памятью.

В Python объекты и структуры данных data structures находятся в закрытой динамически выделяемой области private heap, которая управляется менеджером памяти Python. Он делегирует часть работы программам распределения ресурсов allocators, закрепленным за конкретными объектами, и одновременно с этим следит, чтобы они не выходили за пределы динамически выделяемой области.

По факту данной областью управляет интерпретатор interpreter. Пользователь никак не контролирует данный процесс, даже когда манипулирует ссылками объектов на блоки памяти внутри динаической области. Менеджер памяти Python распределяет пространство динамической области среди объектов и другие внутренние буферы по требованию.


Библиотека собеса по Python
😁3👍1👏1
Как FastAPI обрабатывает зависимости с Depends, и как происходит их разрешение в контексте асинхронных и синхронных функций?

FastAPI строит граф зависимостей рекурсивно при старте приложения. При обработке запроса оно вызывает зависимости в порядке topological sort. Асинхронные зависимости вызываются с await, синхронные — через обычный вызов. FastAPI автоматически определяет тип зависимости по сигнатуре. Повторно используемые зависимости кэшируются внутри одного запроса. Исключения в зависимостях прерывают цепочку и оборачиваются в HTTP-ответ.

Библиотека собеса по Python
3🤔1
🫣 Боитесь математики в ML?

Думаете, для этого нужно вспоминать университетские интегралы и решать сложные уравнения?

У нас хорошая новость: машинное обучение — это в первую очередь инженерная практика, а не математическая олимпиада. Здесь важнее понимать суть, а не выводить формулы.

Именно на таком подходе — через логику, интуицию и наглядные примеры — и построен наш курс «ML для старта в Data Science», где мы объясняем всё на пальцах, без боли и зубрёжки.

Регистрируйтесь, пока есть свободные места 😉
👍1
Какие существуют различные стили наследования моделей в Django?

Django поддерживает 3 типа наследования. Это абстрактные базовые классы, многотабличное наследование и прокси-модели.

Библиотека собеса по Python
👍2
Для чего нужна функция statistics.mean()?

Функция statistics.mean() в Python используется для вычисления среднего арифметического набора данных. Она находится в модуле statistics, который нужно предварительно импортировать.

Библиотека собеса по Python
🧐 Зоопарк моделей в ML: с чего начать?

Открываешь статью по машинному обучению — и в тебя летят слова: трансформеры, бустинги, SVM, регрессии.

Кажется, придётся учить всё это, иначе в ML не пустят.

Хорошая новость: 90% задач можно закрыть 2–3 классическими методами. Разберёшь их — уже сможешь собирать работающие проекты. А хайповые названия подождут.

Важно: не распыляйся на всё подряд. Начни с базового — это фундамент, на котором держится остальное.

👉 Успей попасть на курс «ML для старта в Data Science»
1
В чём разница между deepcopy и copy в Python, и как они работают с объектами, содержащими изменяемые и неизменяемые типы данных?

copy.copy создаёт поверхностную копию объекта: сам объект новый, но вложенные изменяемые элементы (списки, словари, пользовательские объекты) остаются ссылками на те же объекты. copy.deepcopy рекурсивно копирует все вложенные структуры, создавая полную независимую копию, обходя граф объектов и учитывая циклические ссылки с помощью внутреннего memo. Для неизменяемых типов (строки, числа, кортежи без изменяемых элементов) оба метода возвращают ту же ссылку.

Библиотека собеса по Python
👍2
Как векторизация связана с бродкастингом в NumPy?

Векторизация подразумевает делегирование операций NumPy внутренне оптимизированным функциям языка C для получения более быстрого кода Python. В то время как бродкастинг относится к методам, которые позволяют NumPy выполнять арифметические операции, связанные с массивами. Размер или форма массивов в этом случае не имеют значения. Трансляция решает проблему несовпадающих массивов, реплицируя меньший массив вдоль большего массива, чтобы гарантировать, что оба массива имеют совместимые формы для операций NumPy. Выполнение бродкастинга перед векторизацией помогает векторизовать операции, которые поддерживают массивы разных измерений.

Библиотека собеса по Python
1