Python вопросы с собеседований
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd
Mostrar más📈 Análisis del canal de Telegram Python вопросы с собеседований
El canal Python вопросы с собеседований (@python_job_interview) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 24 967 suscriptores, ocupando la posición 5 489 en la categoría Tecnologías y Aplicaciones y el puesto 26 805 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 24 967 suscriptores.
Según los últimos datos del 04 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -145, y en las últimas 24 horas de -13, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 6.29%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 3.00% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 1 570 visualizaciones. En el primer día suele acumular 750 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 8.
- Intereses temáticos: El contenido se centra en temas clave como github, api, собеседование, git, docker.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Вопросы с собеседований по Python
@workakkk - админ
@machinelearning_interview - вопросы с собесдований по Ml
@pro_python_code - Python
@data_analysis_ml - анализ данных на Python
@itchannels_telegram - 🔥 главное в ит
РКН: clck.ru/3FmrFd”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 05 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
Многоступенчатый 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, — его можно выбросить (инвариант монотонной деки).
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
