Python вопросы с собеседований
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Python вопросы с собеседований
تُعد قناة Python вопросы с собеседований (@python_job_interview) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 24 967 مشتركاً، محتلاً المرتبة 5 489 في فئة التكنولوجيات والتطبيقات والمرتبة 26 805 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 24 967 مشتركاً.
بحسب آخر البيانات بتاريخ 04 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -145، وفي آخر 24 ساعة بمقدار -13، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 6.29%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 3.00% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 1 570 مشاهدة. وخلال اليوم الأول يجمع عادةً 750 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 8.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل github, api, собеседование, git, docker.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Вопросы с собеседований по Python
@workakkk - админ
@machinelearning_interview - вопросы с собесдований по Ml
@pro_python_code - Python
@data_analysis_ml - анализ данных на Python
@itchannels_telegram - 🔥 главное в ит
РКН: clck.ru/3FmrFd”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 05 يونيو, 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, — его можно выбросить (инвариант монотонной деки).
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
