Python вопросы с собеседований
25.8K subscribers
600 photos
45 videos
17 files
482 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
Download Telegram
🖥 Как организовать архитектуру большого Python-проекта?

Разработка крупного Python-проекта требует продуманной архитектуры. Правильная структура кода упрощает развитие, тестирование и поддержку приложения.

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

Обсудим разделение системы на слои (domain, service, infrastructure), использование популярных шаблонов проектирования (Dependency Injection, Repository, Facade), организацию кода по модулям и пакетам, примеры структуры каталогов, работу с зависимостями и конфигурацией (Pydantic, dotenv), логгирование и мониторинг, обеспечение тестируемости, поддержку расширяемости и модульности.

Также приведем примеры кода и структуры каталогов, а в конце – общие советы и распространенные ошибки, которых следует избегать.

https://uproger.com/kak-organizovat-arhitekturu-bolshogo-python-proekta/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🥰2
🎨 NFT Generator: Создавайте уникальные NFT с легкостью!

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

🚀Основные моменты:
- Легкая генерация NFT из изображений.
- Поддержка уникальных комбинаций и анимации.
- Интуитивно понятный GUI для удобства использования.
- Настраиваемая структура папок для ваших изображений.

📌 GitHub: https://github.com/vooltex5083/NFT-generator

#python
4👍3🔥2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Коварная ловушка с замыканиями в Python

Многие хитрые баги в Python появляются из-за того, что разработчики неверно понимают область видимости переменных в замыканиях.

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


funcs = []

for i in range(5):
# Ошибка - все функции запомнят i=4
funcs.append(lambda: i)

print([f() for f in funcs]) # [4,4,4,4,4]

funcs_safe = []

for i in range(5):
# Правильно - захватываем текущее значение
funcs_safe.append(lambda i=i: i)

print([f() for f in funcs_safe]) # [0,1,2,3,4]
7👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🕔 Как сделать задержку в Python разными способами

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

Обычная пауза - через time.sleep().
Неблокирующая задержка - через asyncio.sleep() в асинхронном коде.

Точная задержка в цикле — через time.perf_counter().
Выбирайте под свой сценарий.
import time


print("Старт")
time.sleep(2) # простая задержка
print("Пауза 2 секунды завершена")

#2 вариант
import asyncio

async def main():
print("Асинхронный старт")
await asyncio.sleep(1.5) # не блокирует поток
print("Прошла асинхронная задержка 1.5 сек")

asyncio.run(main())

#3 вариант
import time

start = time.perf_counter()
while time.perf_counter() - start < 1: # точная контрольная задержка ~1 сек
pass

print("Прошла точная задержка без sleep")
8
This media is not supported in your browser
VIEW IN TELEGRAM
🚨 SQL Никогда НЕ ДЕЛАЙ ТАК #sql

НИКОГДА НЕ ЛОМАЙ ИНДЕКСЫ ФУНКЦИЯМИ: не оборачивай индексируемые поля в функции внутри WHERE.

Как только ты пишешь LOWER(), CAST(), COALESCE() или любые вычисления по колонке — индекс перестаёт работать, и запрос падает в полное сканирование таблицы.

Это одна из самых тихих причин, почему запросы внезапно превращаются в тормоза.

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


Плохо: индекс по email НЕ используется
SELECT *
FROM users
WHERE LOWER(email) = '[email protected]';

-- Хорошо: нормализуем значение заранее
SELECT *
FROM users
WHERE email = '[email protected]';

-- Или создаём функциональный индекс (PostgreSQL)
CREATE INDEX idx_users_email_lower ON users (LOWER(email));


https://www.youtube.com/shorts/AyiAslOeJFA
7👍3🔥1
⚡️Представь: ты дошёл до оффера в Big Tech, осталось «просто поболтать про прошлый опыт» — и именно тут тебя разворачивают. Разница между middle и senior — это не только LeetCode и system design, а то, как ты говоришь о своих проектах.

🔥9 декабря в 19.00 мск. приглашаем на открытый вебинар «Самое важное интервью при устройстве в Big Tech».

Спикер: Даня Слободенюк, Team Lead разработки в ex-Yandex, ex-T-Bank, ex-Sber, founder algocode

Вопросы:

• устройство секции про прошлый опыт
• как структурировать рассказ о сложном проекте
• как разбирать факапы и показывать лидерство
• типовые вопросы про масштабирование и «пожары»
• как эта секция решает твой грейд и ЗП

🎁Бонус: доступ к algocode на 3 дня за 1 рубль, чек-лист по прохождению секции

👉Регистрация

algocode помогает готовиться к собеседованиям в Big Tech — от алгоритмов и system design до таких «простых» секций про прошлый опыт.

#реклама
О рекламодателе
1
This media is not supported in your browser
VIEW IN TELEGRAM
НЕЛЬЗЯ ТАК ИСПОЛЬЗОВАТЬ LAMBDA В PYTHON

Главная ошибка - превращать lambda в свалку логики: добавлять туда побочные эффекты, вызовы print, длинные условия и вычисления.

Такие лямбды плохо читаются, их невозможно нормально отлаживать, и они нарушают саму идею — быть короткой и чистой функцией. Всё сложное нужно выносить в обычную функцию. Подписывайся, больше фишек каждый день !


# нельзя так делать — lambda с изменением состояния
data = [1, 2, 3]
logs = []

# опасный антипаттерн
process = lambda x: logs.append(f"processed {x}") or (x * 10)

result = [process(n) for n in data]

print("RESULT:", result)
print("LOGS:", logs)
👍43🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥Python: САМЫЙ ЭФФЕКТИВНЫЙ АЛГОРИТМ ДЛЯ ПОИСКА

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

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

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


nums = [1, 4, 7, 9, 15, 20, 33, 42]

def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return True
if arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return False

print(binary_search(nums, 33))
print(binary_search(nums, 100))
7👍1🔥1
🔥 На stepik вышел курс, который учит Создавать настоящие AI-сервисы, а не просто запускать скрипты?

Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.

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

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

🎁 48 часов действует скидка в 40% процентов

👉 Начать учиться на Stepik
4👍2🥰2
🚀 DR Tulu: Reinforcement Learning for Deep Research

DR Tulu-8B — первый открытый модель для долгосрочных задач глубоких исследований. Она демонстрирует конкурентоспособные результаты на бенчмарках, сопоставимых с OpenAI. Репозиторий включает библиотеки для разработки агентов, обучение с помощью RL и SFT.

🚀Основные моменты:
- Мощная библиотека агентов для глубоких исследований.
- Обучение с эволюционными рубриками.
- Поддержка высококонкурентного асинхронного управления запросами.
- Интеграция с существующими моделями и фреймворками.

📌 GitHub: https://github.com/rlresearch/dr-tulu
3🔥2👍1