Python вопросы с собеседований
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd
Показати більше📈 Аналітичний огляд Telegram-каналу Python вопросы с собеседований
Канал Python вопросы с собеседований (@python_job_interview) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 24 966 підписників, посідаючи 5 488 місце в категорії Технології та додатки та 26 804 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 24 966 підписників.
За останніми даними від 05 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -153, а за останні 24 години на -5, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 6.12%. Протягом перших 24 годин після публікації контент зазвичай збирає 3.05% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 1 527 переглядів. Протягом першої доби публікація в середньому набирає 762 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 8.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як github, api, собеседование, git, docker.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Вопросы с собеседований по Python
@workakkk - админ
@machinelearning_interview - вопросы с собесдований по Ml
@pro_python_code - Python
@data_analysis_ml - анализ данных на Python
@itchannels_telegram - 🔥 главное в ит
РКН: clck.ru/3FmrFd”
Завдяки високій частоті оновлень (останні дані отримано 06 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
Многоступенчатый Dockerfile для Python
1. Этап сборки зависимостей
FROM python:3.12-slim AS builder
WORKDIR /build
COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
2. Финальный минимальный образ
FROM python:3.12-slim
WORKDIR /app
Копируем только готовые зависимости без pip-кэша
COPY --from=builder /install /usr/local
Добавляем чистый код без артефактов
COPY . .
CMD ["python", "main.py"]min() и max().
Обе поддерживают параметр default — он задаёт значение по умолчанию, если последовательность пуста.
Подписывайся, больше фишек каждый день !
numbers = [3, 7, 2, 9]
print(min(numbers)) # 2
print(max(numbers)) # 9
# пример с пустым списком
print(min([], default=0)) # 0
print(max([], default=0)) # 0
from hypothesis import given, strategies as st
Базовый юнит-тест
def test_add():
assert add(2, 3) == 5
Фикстура окружения (временный файл)
@pytest.fixture
def temp_file(tmp_path):
p = tmp_path / "data.txt"
p.write_text("42")
return p
def test_read_data(temp_file):
assert read_data(temp_file) == 42
Property-based тест
@given(st.integers(), st.integers())
def test_add_random(a, b):
assert add(a, b) == a + b
Запуск только упавших тестов (быстрый цикл разработки):
# pytest --lfgit init - создаёт новый Git-репозиторий в текущей папке (начинает контроль версий). git add - запоминает изменения, подготавливая их для сохранения. git commit - сохраняет подготовленные изменения с твоим комментарием (например, «починил баг» или «добавил кнопку»). git push - отправляет сделанные коммиты в облачный (удалённый) репозиторий, чтобы их видели другие. git pull - забирает последние изменения из облака и добавляет их в твою рабочую версию (автоматически объединяет). git remote - помогает управлять ссылками на удалённые репозитории (добавлять новые или смотреть, какие уже подключены). git branch - показывает существующие ветки, создаёт новые и позволяет переключаться между ними (чтобы работать параллельно с разными версиями кода). git fetch - скачивает последние изменения из облака, но не объединяет их с текущим кодом (можно посмотреть заранее, что изменилось). git checkout - переключает твою рабочую папку на другую ветку или на конкретный коммит (например, для тестирования). git merge - объединяет изменения из одной ветки с текущей веткой (сливает их воедино). git status - показывает, какие файлы были изменены, какие готовы к коммиту, а какие ещё нет (текущее состояние проекта). git reset - позволяет вернуться назад по истории кода, отменив изменения до конкретного коммита (например, если что-то пошло не так).🎚️ Сохраняйте себе или отправляйте друзьям - еще пригодится.
A (могут быть отрицательные) и K. Найти минимальную длину подмассива с суммой ≥ K. Если нет — вернуть -1.
Подвох. С отрицательными числами не работает двухуказательную. Решение — префиксные суммы + монотонная дека.
Идея.
Пусть P[i] — префиксная сумма до i. Нам нужно минимизировать i - j при условии P[i] - P[j] ≥ K.
Храним индексы j в деке так, что значения P[j] строго возрастают:
- Пока текущий P[i] − P[deque[0]] ≥ K — обновляем ответ и выкидываем голову (нашли короткий кандидат).
- Пока P[i] ≤ P[deque[-1]] — выкидываем хвост (бессмысленные, более «жирные» префиксы).
- Затем добавляем i.
Сложность: каждый индекс заходит/вылетает из деки по разу → O(n).
Короткая реализация
from collections import deque
from math import inf
from typing import List
def shortest_subarray_at_least_k(A: List[int], K: int) -> int:
P = [0]
for x in A: P.append(P[-1] + x)
dq, ans = deque(), inf # dq хранит индексы префиксов, их суммы возрастают
for i, s in enumerate(P):
while dq and s - P[dq[0]] >= K:
ans = min(ans, i - dq.popleft())
while dq and P[dq[-1]] >= s:
dq.pop()
dq.append(i)
return -1 if ans is inf else ans
# Примеры
if __name__ == "__main__":
print(shortest_subarray_at_least_k([2, -1, 2], 3)) # 3 (весь массив)
print(shortest_subarray_at_least_k([1, 2, 3, 4], 6)) # 2 (3+3 нет, но 2+4 или 3+4 длина 2)
print(shortest_subarray_at_least_k([84, -37, 32, 40, 95], 167)) # 3
Почему это работает?
Если у нас есть два индекса j1 < j2 и P[j1] ≥ P[j2], то j1 никогда не даст более короткого валидного подмассива, чем j2, — его можно выбросить (инвариант монотонной деки).
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
