Библиотека собеса по Python | вопросы с собеседований
6.03K subscribers
670 photos
14 videos
519 links
Вопросы с собеседований по Python и ответы на них.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Последние часы со скидкой!

Мы уже закрыли вебинар «ИИ-агенты: новая фаза развития AI», но запись всё ещё доступна.

А дальше остаётся только практика. На курсе «ИИ-агенты для DS-специалистов» ты научишься разрабатывать агентов, собирать RAG-системы и адаптировать LLM под бизнес.

Сегодня цена ещё 57.000 ₽ с промокодом datarascals.
Завтра — 69.000 ₽.

👉 Успеть оплатить до полуночи
👍2🥱1
🤖 Как работают менеджеры контекста в Python, и в каких случаях их полезно использовать?

Менеджеры контекста используются для управления ресурсами, такими как файлы, сетевые подключения или блокировки, с автоматическим освобождением этих ресурсов по завершении работы. Основное их применение — в тех случаях, когда требуется гарантированное освобождение ресурсов, даже в случае возникновения ошибок. Менеджеры контекста создаются с помощью ключевого слова with, которое автоматически вызывает методы enter и exit у объекта.

Пример использования ⚙️
# Пример менеджера контекста для работы с файлами
with open('example.txt', 'w') as file:
file.write('Hello, world!')

# Файл автоматически закроется после выхода из блока 'with', даже если возникнет ошибка

Библиотека собеса по Python
👍3
🤖 Курс «ИИ-агенты для DS-специалистов»

Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте.

📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.

🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.

🔗 Записаться на курс и узнать подробности
👍1
Как проверить файл .py на синтаксические ошибки без его выполнения?

Для проверки файла .py на синтаксические ошибки без его запуска можно воспользоваться утилитой py_compile.

Можно использовать командную строку или терминал, чтобы проверить файл .py на наличие синтаксических ошибок, не выполняя его. Для этого применяется флаг -m с модулем py_compile.

Откройте командную строку или терминал и перейдите в папку, где находится ваш файл .py. Имя файла, который вы хотите проверить, обозначено как yourfile.py:

python -m py_compile yourfile.py

Библиотека собеса по Python
👍5
🤖 Курс «ИИ-агенты для DS-специалистов»

Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!

Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.

📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.

🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.

🔗 Записаться на курс и узнать подробности
Как Python решает, что вернуть при obj.attr? Укажи роль data/non-data дескрипторов, __getattribute__, __getattr__ и MRO.

Сначала вызывается type(obj).__getattribute__ (если переопределён — он рулит). Далее порядок:

1. Ищем data-descriptor на классе по C3 MRO (есть __set__/__delete__) → вызываем его __get__.
2. Иначе смотрим obj.__dict__.
3. Иначе ищем на классе/MRO: если non-data descriptor (функция, property без __set__ и т.п.) — вызываем __get__, иначе возвращаем значение.
4. Если не нашли — вызывается __getattr__. Итого приоритет: data-descriptor > instance dict > non-data/class attr, поиск по классам — по __mro__ (C3).


Библиотека собеса по Python
👍5
Объясните, как устроен импорт в Python: роль sys.modules (кэш), цепочка sys.meta_path/finders/ModuleSpec/loaders, что происходит при циклических зависимостях, и почему importlib.reload() не «обновляет» ссылки в других модулях.

При import сначала проверяется sys.modules; если модуля нет, по sys.meta_path ищут spec, создают объект модуля, сразу кладут его в sys.modules (для разрыва циклов) и затем loader.exec_module() исполняет код. В циклическом импорте второй участник видит частично инициализированный модуль (атрибутов ещё нет) → AttributeError/тонкие баги. Помогает отложить импорт внутрь функций/блоков, импортировать модуль целиком вместо from X import Y. reload() переисполнить код в том же объекте модуля: старые ссылки в других модулях остаются на прежние объекты, состояние/сайд-эффекты не откатываются — безопасно только при продуманном, идемпотентном коде и контроле точек связывания. Для кастомных источников добавляют свои finders/ loaders в sys.meta_path; namespace-пакеты работают по PEP 420 без __init__.py.

Библиотека собеса по Python
👍21
👾 AI-агенты — настоящее, о котором все говорят!

Уже 3 октября стартует второй поток нашего нового курса «AI-агенты для DS-специалистов».

Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи.

На обучении вы соберёте полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.

🎓 В рамках курса вы научитесь:

1️⃣ адаптировать LLM под разные предметные области и данные
2️⃣ собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
3️⃣ строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.

🗓️ Завтра первый вебинар, успевайте залететь в ряды ИИ-первопроходцев 👈🏻
Как сделать идемпотентное создание записи при гонке (двойной запрос) в Django?

Ввести уникальный бизнес-ключ (UniqueConstraint), обернуть в transaction.atomic(), использовать get_or_create() либо create() с перехватом IntegrityError и затем get(). Не делать предварительных exists(). При зависимостях — лочить родителя select_for_update().

Библиотека собеса по Python
👍3
Напишите программу для вставки пробела между символами всех элементов массива NumPy

Решение:
import numpy as np

# Create Sample NumPy Array
arr = np.array(['i', 'love', 'NumPy', 'AND', 'interviewbit'], dtype=str)

transformed_arr = np.char.join(" ", arr)

print("Transformed Array: ")
print(transformed_arr)


Библиотека собеса по Python
👍3
🚀 Курс «ИИ-агенты для DS-специалистов» уже стартовал

Первый вебинар успешно прошёл, участники уже начали разбираться, как использовать ИИ-агентов в реальных проектах.

Но всё самое интересное только начинается!

🔥 Впереди 4 мощных занятия — с практикой, инсайтами и разбором кейсов от экспертов.

💸 Сейчас действует специальная цена → 69.000 ₽ вместо 79.000 ₽.

Осталось всего 4 места.

Не упустите шанс прокачаться в том, что будет определять будущее индустрии.

👉 Забронировать место на курсе
Чем отличаются методы __str__() от __repr__() в Python и когда их принято использовать?

Методы __str__() и __repr__() в Python имеют разные цели и используются в различных контекстах.
Метод __str__() предназначен для создания понятного и удобного представления объекта, которое будет полезно конечному пользователю. В то время как __repr__() создает более формальное строковое представление, которое должно быть точным и однозначным, что позволяет воссоздать объект.
__repr__() часто используется в процессе отладки и разработки, так как его вывод должен быть максимально информативным. В отличие от него, __str__() ориентирован на предоставление более дружелюбного и менее детализированного представления объекта. Если метод __str__() не реализован, Python автоматически использует __repr__() в качестве альтернативы.


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