Библиотека собеса по Python | вопросы с собеседований
6.01K subscribers
706 photos
15 videos
761 links
Вопросы с собеседований по Python и ответы на них.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Как найти корреляцию с помощью Pandas?

Метод Pandas dataframe.corr() используется для поиска корреляции всех столбцов dataframe. Он автоматически игнорирует любые отсутствующие или нечисловые значения.
DataFrame.corr()

Библиотека собеса по Python
👏1💯1
✍🏻 Как установить индекс в pandas dataFrame?

Мы можем установить индекс для фрейма данных Pandas с помощью метода set_index(), который используется для установки списка, серии или фрейма данных в качестве индекса датафрейма.
DataFrame.set_index('Column_Name')


Библиотека собеса по Python
Что такое introspection?

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

Одним из примеров использования introspection является динамическое создание объектов в Python. Например, если у вас есть класс, но вы не знаете имя этого класса во время написания кода, вы можете использовать функцию
getattr() для получения класса по его имени во время выполнения программы.

Другой пример использования introspection — это определение типа объекта в Python. Для этого можно использовать функцию
type().

Библиотека собеса по Python
🏃‍♀️ Как провести вечер вторника с пользой для карьеры?

Включайте кружок там личное приглашение от спикера. 👆

Уже завтра в прямом эфире, разбираем архитектуру контекста в мультиагентных системах.

🤫 Секретный лут:
промик на 5.000₽. Он достанется только тем, кто придет на прямой эфир.

👉 Регистрируйтесь на трансляцию
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое декораторы с аргументами в Python, и как их можно использовать?

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

🗣️ Пример:
def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
result = func(*args, **kwargs)
return result
return wrapper
return decorator

@repeat(3)
def say_hello():
print("Hello!")

say_hello()


🤖 Осталось 4 места на курс по ИИ-агентам. Набор закрывается 30 апреля.
🔗
Успеть на обучение

Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Осталось всего 4 места на курс по ИИ-агентам. 30 апреля закрываем набор окончательно.

В ГС честно рассказали:
— Кому курс не подойдет;
— Какой хардкор в программе (LangGraph, AutoGen, CrewAI);
— Как мы даем токены, чтобы вы не тратили свои деньги.

🏃‍♀️ Записаться, пока есть места
Please open Telegram to view this post
VIEW IN TELEGRAM
Что делать если нужно сериализовать данные, которые не поддерживаются стандартным модулем json?

Если нужно сериализовать объекты, которые по умолчанию не поддерживаются модулем json, то есть несколько вариантов:

— Реализовать методы getattr и setattr в классе объекта, чтобы преобразовать его в словарь, который уже можно сериализовать в JSON.

— Использовать декоратор dataclass из модуля dataclasses для автоматической генерации методов сериализации.

— Создать собственный класс-наследник json.JSONEncoder и переопределить метод default(), чтобы указать как сериализовать нестандартные объекты.

— Использовать библиотеку marshmallow для создания схем сериализации/десериализации сложных объектов в JSON.

— Преобразовать объекты в dict или list вручную перед сериализацией с помощью методов объекта или отражения (reflection).

— Использовать другой формат сериализации, например YAML или MessagePack, который может поддерживать произвольные типы.

Библиотека собеса по Python
1
Что такое dict comprehension?

Dict comprehension — это способ конструирования словарей в одну строку, аналогичный list comprehension.

Синтаксис dict comprehension: {ключ: значение for элемент in итерируемый_объект if условие}

Основные преимущества dict comprehension:
— Краткость и читабельность по сравнению с обычным циклом.
— Более высокая производительность за счет оптимизации.
— Удобство создания словарей «на лету» по данным.

Dict comprehension используется для:
— Преобразования данных из одного вида в другой.
— Создания словарей на основе списков или других итерируемых объектов.
— Фильтрации и обработки данных в процессе создания словаря.


🤖 Осталось 4 места на курс по ИИ-агентам. Набор закрывается 30 апреля.
🔗
Успеть на обучение

Библиотека собеса по Python
👍3
✍🏻 Для чего могут применять конструкцию try finally без except?

Конструкция try-finally без блока except может применяться в следующих случаях:

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


Библиотека собеса по Python
Что делает метод isalnum()?

Метод isalnum() — это строковый метод, который определяет, состоит ли строка исключительно из букв и/или цифр. Он возвращает True, если все символы в строке являются буквами или цифрами, и False в противном случае.

Метод isalnum() особенно полезен при проверке пользовательского ввода, когда необходимо удостовериться, что введенная строка содержит только буквы и цифры.


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

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

Библиотека собеса по Python
Что такое list comprehension?

List comprehension — это удобный способ создания списков за счет компактной записи.

Синтаксис list comprehension выглядит так: [выражение for элемент in итерируемый_объект if условие]

List comprehension позволяет за одну строку кода:
— Пройти циклом по итерируемому объекту.
— Отфильтровать элементы по нужному условию.
— Сформировать результирующий список.

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


Библиотека собеса по Python
Что такое ROC-кривая? Что такое AUC?

ROC-кривая — кривая рабочих характеристик (Receiver Operating Characteristics curve). Используется для анализа поведения классификаторов при различных пороговых значениях. Позволяет рассмотреть все пороговые значения для данного классификатора. Показывает долю ложно положительных примеров (англ. false positive rate, FPR) в сравнении с долей истинно положительных примеров (англ. true positive rate, TPR).

Или так: ROC-кривая — это кривая роста процента истинно позитивных результатов по мере роста процента ложных позитивных результатов. Полностью случайное предсказание будет изображаться прямой диагональной линией (черная штриховая линия на рисунке). Оптимальная модель будет как можно более близкой к оси y и к линии «y=1».

Одна из метрик того, насколько близка кривая ROC к этим линиям – AUC, или площадь под кривой (Area Under Curve). Чем выше AUC, тем лучше работает модель.


Библиотека собеса по Python
В продакшн случайно был задеплоен коммит с багом. Фикс уже готов, но нужно быстро откатить изменения, чтобы восстановить рабочее состояние. Какие у вас есть варианты действий и когда использовать каждый?

Можно использовать git revert, если нужно сохранить историю и явно зафиксировать отмену коммита (подходит для общих веток). Если баговый коммит ещё не попал в общий репозиторий, можно применить git reset --hard и перезаписать историю. Для сложных случаев — git cherry-pick нужных исправлений в стабильную ветку.

Библиотека собеса по Python
2👍1
В продакшене Python-сервис со временем начинает замедляться, хотя нагрузка остаётся стабильной. Мониторинг показывает рост памяти (memory leak). Как вы будете искать и устранять причину?

Использовать профайлеры (tracemalloc, objgraph, memory_profiler) для отслеживания утечек, проверить циклические ссылки и висящие ссылки на объекты (особенно в кэше или глобальных структурах), оптимизировать работу с коллекциями и сторонними библиотеками.

Библиотека собеса по Python
🦾 Почему ваши AI-продукты на базе LLM ломаются (и как это чинить)?

Выкатили ИИ-фичу в прод, а она галлюцинирует, падает или выдает мусор? Приглашаем на открытый вебинар, где разберем реальную боль внедрения LLM-агентов и научимся делать так, чтобы «всё работало».

🗓 Когда: 14 мая в 19:00 МСК
⏱️ Формат: 60 минут мяса + 30 минут ответов на ваши вопросы

🧑🏻‍💻 Кто вещает: Эмиль Сатаев — Backend Platform Developer (8+ лет в разработке). Человек, который своими руками внедряет LLM и агентные системы в реальные коммерческие сервисы.

🎁 Главный бонус для онлайна:
Только участникам прямого эфира подарим уникальный промокод на скидку 10.000 ₽ на большой курс AgentOps.

👉 Занять место на вебинаре
Когда выбирать typing.Protocol вместо ABC и какие есть ограничения?

Protocol — для структурной типизации («утиная» совместимость) без наследования: достаточно совпадения сигнатур. Работает на уровне тайпчекера; для рантайм-проверок нужен @runtime_checkable и только isinstance/issubclass. Не хранит состояние и не навязывает реализацию — идеален для плагинных интерфейсов.

Библиотека собеса по Python
🌚1
Что такое old-style и new-style классы и в чем их различия?

— Old-style классы наследуются напрямую от класса type, тогда как new-style классы имеют наследование от класса object.

— New-style классы предлагают дополнительные функции, такие как дескрипторы, свойства и слоты, которые недоступны в old-style классах.

— В new-style классах метод __init__ вызывается при наследовании, в отличие от old-style классов.

— New-style классы являются предпочтительными, так как они полностью поддерживают принципы объектно-ориентированного программирования. Большинство библиотек требуют именно их использование.

Рекомендуется применять new-style классы, унаследованные от object, поскольку они обладают расширенными возможностями и лучше интегрируются с другими объектами.


Библиотека собеса по Python
Почему многопоточность в Python не всегда ускоряет выполнение CPU-bound задач?

Из-за GIL одновременно выполняется только один поток байткода, поэтому для CPU-bound задач лучше использовать multiprocessing или выносить вычисления в нативный код.

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