uk
Feedback
Python | Вопросы собесов

Python | Вопросы собесов

Відкрити в Telegram

📈 Аналітичний огляд Telegram-каналу Python | Вопросы собесов

Канал Python | Вопросы собесов (@python_easy_ru) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 13 109 підписників, посідаючи 9 732 місце в категорії Технології та додатки та 50 668 місце у регіоні Росія.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 13 109 підписників.

За останніми даними від 05 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -48, а за останні 24 години на -5, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 6.21%. Протягом перших 24 годин після публікації контент зазвичай збирає 6.02% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 814 переглядів. Протягом першої доби публікація в середньому набирає 789 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 4.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як ставь, модуль, строка, docker, alice.

📝 Опис та контентна політика

Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky

Завдяки високій частоті оновлень (останні дані отримано 07 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

13 109
Підписники
-524 години
-147 днів
-4830 день
Архів дописів
🤔 Что такое пакет? Пакет (package) в Python — это набор модулей, объединённых в одну директорию. Главное отличие от обычной папки — наличие файла __init__.py, который делает директорию пакетом. 🚩Как создать пакет? Допустим, мы хотим создать пакет math_utils с модулями для работы с числами.
/my_project
    /math_utils  ← Это пакет
        __init__.py  ← Делаем директорию пакетом
        arithmetic.py  ← Модуль с функциями сложения/вычитания
        geometry.py  ← Модуль с функциями для работы с фигурами
    main.py  ← Основной файл программы
Код в arithmetic.py
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b
Код в geometry.py
def square_area(side):
    return side * side
Код в __init__.py
from .arithmetic import add, subtract
from .geometry import square_area
Теперь можно импортировать функции прямо из пакета:
from math_utils import add, square_area

print(add(2, 3))  # 5
print(square_area(4))  # 16
🚩Импорт модулей из пакета Импортируем весь пакет (с __init__.py)
from math_utils import add, square_area
Импортируем конкретный модуль
from math_utils import arithmetic
print(arithmetic.add(3, 5))
Импортируем конкретную функцию из модуля
from math_utils.arithmetic import add
print(add(3, 5))
🚩Как работают пакеты в Python? Python ищет пакеты по sys.path
import sys
print(sys.path)  # Пути, где Python ищет модули
Если Python не находит пакет, можно добавить путь вручную:
import sys
sys.path.append("/path/to/my_project")
Можно создавать вложенные пакеты
/my_project
    /math_utils
        __init__.py
        /advanced
            __init__.py
            calculus.py
Импорт:
from math_utils.advanced.calculus import derivative
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как можно проверить, что значение есть в словаре? Проверить наличие ключа в словаре можно с помощью оператора in Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Можно ли при вызове метода save указать какие поля изменять? Да, в Django ORM можно указать конкретные поля для сохранения, используя параметр update_fields в методе .save(). 🚩Как использовать `update_fields` Пример модели
from django.db import models

class UserProfile(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()
    age = models.IntegerField()
Обновляем только поле name, не трогая email и age
user = UserProfile.objects.get(id=1)
user.name = "Новый пользователь"
user.save(update_fields=["name"])  # Обновит только поле `name`
🚩Что делает `update_fields`? Генерирует SQL-запрос только для указанных полей, например:
  UPDATE user_profile SET name = 'Новый пользователь' WHERE id = 1;
  
🚩Когда `update_fields` полезен? Уменьшает нагрузку на БД, так как обновляет только нужные поля. Полезен, если нужно изменить одно поле, а не всю запись. Избегает ненужных изменений в auto_now и auto_now_add полях (DateTimeField). 🚩Ограничения `update_fields` Нельзя использовать при создании объекта (save() с update_fields не работает для .create()).
user = UserProfile(name="Alice", email="alice@example.com")
user.save(update_fields=["name"])  # ❌ Ошибка, объект ещё не в базе!
Не обновляет auto_now-поля (DateTimeField) автоматически!
updated_at = models.DateTimeField(auto_now=True)  # Не обновится с `update_fields`
Решение: обновить вручную:
user.updated_at = timezone.now()
user.save(update_fields=["name", "updated_at"])
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как переподнять исключение в блоке except? Внутри блока except можно использовать ключевое слово raise без аргументов, чтобы повторно выбросить текущее перехваченное исключение. Это полезно, если нужно что-то логировать или изменить, но затем продолжить распространение ошибки. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 В чем отличие асинхронности, threading'га и мультипроцессинга? Асинхронность, threading и мультипроцессинг - это три различных подхода к параллельному выполнению задач каждый из которых имеет свои особенности и применения: 🚩Асинхронность (Asynchronous) Асинхронность предполагает выполнение задач без ожидания их завершения. Используется для работы с вводом-выводом (I/O), таким как чтение или запись файлов, сетевые запросы и т. д. В асинхронном коде задачи не блокируют основной поток выполнения, что позволяет эффективно использовать ресурсы процессора. Примеры асинхронных моделей включают в себя асинхронные функции и ключевые слова в Python (например, async, await). 🚩Потоки (Threading) Потоки позволяют выполнять несколько частей кода (потоков) параллельно в пределах одного процесса. Используются для выполнения многозадачных операций, которые могут быть распределены между несколькими ядрами процессора. Потоки могут выполняться параллельно, но могут также конкурировать за общие ресурсы, что может привести к проблемам синхронизации и безопасности. В некоторых языках, таких как Python, использование потоков ограничено из-за GIL (Global Interpreter Lock), что может снижать эффективность при использовании множества потоков для CPU-интенсивных задач. 🚩Мультипроцессинг (Multiprocessing) Мультипроцессинг также позволяет выполнять несколько частей кода параллельно, но каждая часть выполняется в отдельном процессе. Каждый процесс имеет свое собственное пространство памяти, что делает мультипроцессинг более подходящим для многозадачных вычислений на многоядерных системах. Процессы обычно имеют больший накладные расходы по сравнению с потоками, поскольку каждый из них требует своих собственных ресурсов памяти и управления. Мультипроцессинг избегает проблемы GIL, что делает его более эффективным для CPU-интенсивных задач в Python и других языках. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое тернарный оператор? Это форма записи условного выражения в одну строку, которая позволяет выбрать значение в зависимости от условия. Он удобен, когда нужно быстро присвоить значение переменной на основе простого условия, не используя полноценную конструкцию if. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое хранитель (Memento)? Это поведенческий паттерн проектирования, который позволяет сохранять и восстанавливать предыдущее состояние объекта без нарушения инкапсуляции. Этот паттерн особенно полезен для реализации операций отмены и повтора, так как он позволяет хранить состояния объектов и возвращать их к этим состояниям по необходимости. 🚩Зачем нужен? 🟠Сохранение состояния: Позволяет сохранять текущее состояние объекта и восстанавливать его позже. 🟠Инкапсуляция: Обеспечивает сохранение состояния объекта без нарушения его инкапсуляции. Внутренние детали объекта остаются скрытыми от других объектов. 🟠Отмена и повтор операций: Поддерживает функциональность отмены и повтора операций, так как позволяет возвращать объект к предыдущим состояниям. Пример реализации
class Memento:
    def __init__(self, state: str):
        self._state = state

    def get_state(self) -> str:
        return self._state

class TextEditor:
    def __init__(self):
        self._state = ""
        self._history = []

    def type(self, text: str):
        self._save_state()
        self._state += text

    def _save_state(self):
        self._history.append(Memento(self._state))

    def undo(self):
        if not self._history:
            return
        memento = self._history.pop()
        self._state = memento.get_state()

    def get_content(self) -> str:
        return self._state

# Клиентский код для использования паттерна Хранитель
def main():
    editor = TextEditor()

    editor.type("Hello, ")
    editor.type("world!")
    print(editor.get_content())  # Hello, world!

    editor.undo()
    print(editor.get_content())  # Hello, 

    editor.undo()
    print(editor.get_content())  # 

if __name__ == "__main__":
    main()
1⃣`Memento`: Сохраняет состояние объекта. Он предоставляет методы для получения сохраненного состояния, но не предоставляет методов для изменения состояния, что обеспечивает неизменность. 2⃣`TextEditor`: Создает и использует объекты Memento для сохранения и восстановления своего состояния. Методы type и undo позволяют редактировать текст и отменять изменения. 3⃣`_save_state`: Сохраняет текущее состояние редактора в истории перед каждым изменением. 4⃣`undo`: Восстанавливает предыдущее состояние редактора из истории. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что делают методы tell и seek? tell возвращает текущую позицию курсора в файле. seek позволяет установить позицию для следующей операции чтения или записи. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

⌨️ Как вырасти до Мидла или Синьора в два раза быстрее? 👨‍💻Просто хорошо работать работу не достаточно. Ты делаешь то, что
⌨️ Как вырасти до Мидла или Синьора в два раза быстрее? 👨‍💻Просто хорошо работать работу не достаточно. Ты делаешь то, что нужно компании, а не то, что повысит твой грейд Лучший способ вырасти — это персональный план развития от Senior-инженера из БигТеха. Вот как все работает: 1️⃣ Мок-интервью 1-на-1: Час реалистичного собеса с Senior-инженером из Иннотеха, Сбера или другого бигтеха 2️⃣ Честный фидбек: созвонимся и расскажем твои точки роста, оценим грейд и потенциальный уровень зарплаты 3️⃣Персональный план развития: не просто «учите алгосы», а роадмап с конкретными темами, который приведет тебя к желаемому грейду или офферу Мы в ШОРТКАТ провели уже почти 1000 таких мок-интервью и получили оценку 4.9/5, поэтому знаем о чем говорим. 📈 Да, и все это за 900 рублей. Почему так дешево? Мы хотим, чтобы у каждого была возможность проверить в деле наш сервис, а потом уже доверить нам свое развитие. Переходи в нашего бота и забирай свой мок за 900 рублей → @shortcut_py_bot Реклама. О рекламодателе.

🤔 Какие задачи хорошо параллелятся, какие плохо? Параллельные вычисления — это выполнение нескольких задач одновременно, чтобы ускорить работу программы. Но не все задачи можно эффективно распараллелить. 🚩Независимые задачи (Embarrassingly Parallel Tasks) Это задачи, которые можно выполнять полностью независимо друг от друга, без обмена данными. Обработка изображений (фильтры, преобразования) Генерация фрагментов видео Рендеринг 3D-графики (каждый кадр рендерится отдельно) Обучение моделей машинного обучения на разных данных (если без обмена параметрами)
from concurrent.futures import ProcessPoolExecutor
from PIL import Image

def process_image(image_path):
    img = Image.open(image_path)
    img = img.convert("L")  # Перевод в черно-белый формат
    img.save(f"processed_{image_path}")

images = ["img1.jpg", "img2.jpg", "img3.jpg"]

with ProcessPoolExecutor() as executor:
    executor.map(process_image, images)
🚩Численные вычисления на больших данных (SIMD-операции, GPU-ускорение) Если однотипные операции выполняются на большом массиве данных, их можно делать параллельно. Умножение матриц (используется в нейросетях) Обработка сигналов (FFT, фильтрация) Физические симуляции
import numpy as np

A = np.random.rand(1000, 1000)
B = np.random.rand(1000, 1000)

C = A @ B  # Быстрое умножение матриц (использует несколько ядер процессора)
🚩Веб-запросы и сетевые операции Когда программа ждет ответа от сервера, процесс простаивает. Можно запускать запросы асинхронно, чтобы делать их параллельно. Скачивание файлов Парсинг веб-страниц Вызовы API
import asyncio
import aiohttp

async def fetch(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.text()

async def main():
    urls = ["https://example.com", "https://google.com"]
    tasks = [fetch(url) for url in urls]
    responses = await asyncio.gather(*tasks)
    print(responses)

asyncio.run(main())
Ставь 👍 и забирай 📚 Базу знаний

🤔 Откуда берутся поля у access токена? Поля access токена формируются на стороне сервера в момент выдачи. Они могут включать: - идентификатор пользователя - время истечения срока - роли, права доступа - информацию о клиентском приложении Если используется JWT, поля помещаются в его полезную нагрузку (payload) в виде JSON-объекта и подписываются. Структура зависит от системы авторизации (OAuth2, OpenID Connect и др.). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как сгенерировать и применить миграцию? В Django миграции используются для изменения структуры базы данных (создание, изменение и удаление таблиц и полей). 🚩Генерация миграции (`makemigrations`) 🟠Создаём или изменяем модель (`models.py`) Пример модели пользователя:
from django.db import models

class UserProfile(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()
🟠Генерируем миграцию Запускаем команду:
python manage.py makemigrations
Django создаст файл миграции в migrations/
migrations/
  0001_initial.py  # Файл с SQL-изменениями
Проверяем SQL-запрос, который будет выполнен
python manage.py sqlmigrate myapp 0001
🚩Применение миграции (`migrate`) После генерации нужно применить миграции к базе данных:
python manage.py migrate
🚩Что делать, если модель изменилась? Добавим поле в models.py
class UserProfile(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()
    email = models.EmailField(default="example@example.com")  # Добавили поле
Сгенерируем новую миграцию
python manage.py makemigrations
Применяем изменения к БД
python manage.py migrate
🚩Откат миграций (`migrate <номер>`) Если нужно откатить последнее изменение:
python manage.py migrate myapp 0001  # Откат до первой миграции
Ставь 👍 и забирай 📚 Базу знаний

Где вести задачи и проекты? Конечно, в Битрикс24 Бесплатный онлайн-сервис для бизнеса и совместной работы. — Удобный планиров
Где вести задачи и проекты? Конечно, в Битрикс24 Бесплатный онлайн-сервис для бизнеса и совместной работы. — Удобный планировщик задач для всей команды с чек-листами и комментариями. — Популярные проектные методики: канбан, скрам, диаграмма ганта. — Видеозвонки в один клик из чата. — Календарь и слоты для совместного планирования. — Умный ИИ-помощник для постановки четких тз. Полный комплект для эффективности вашей команды. Ставьте первую задачу прямо сейчас. Начать #реклама 16+ task-24.bitrix24.ru О рекламодателе

🤔 Как распознать NP-полную задачу? Задача NP-полная, если: - она принадлежит классу NP (решение проверяется за полиномиальное время); - она неизвестна как решаемая за полиномиальное время, но если бы нашлось решение для одной NP-полной задачи — решились бы и остальные; - она сводится к другим NP-полным задачам. Примеры: задача коммивояжёра, рюкзака, раскраски графа. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие п
Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие повестки и потерянные договоренности мешают нормально работать? Команда МТС Линк собрала на 37 страницах полезные материалы, чек-листы и кейсы, которые помогают компаниям проводить эффективные совещания в онлайне с помощью сервиса Встречи. Из методички узнаете: - Как создать постоянную ссылку и подключаться на встречи в 2 клика, - Как делать заметки и работать с файлами, не переживая за качество связи и безопасность данных. - Как облегчает жизнь ИИ, который расшифровывает созвоны в текст и автоматически отправляет расшифровку на почту. Еще в методичке описаны 7 способов оценки текущей эффективности ваших онлайн-встреч. Получить гайд можно бесплатно на сайте. Скачать #реклама 16+ mts-link.ru О рекламодателе

🤔 Какие типы данных относятся к структурам данных? В Python существует множество структур данных, которые предоставляют различные способы хранения и управления данными. Они делятся на два основных типа: встроенные структуры данных и пользовательские структуры данных (созданные программистом). Встроенные структуры данных предоставляют готовые инструменты для решения большинства задач, а пользовательские разрабатываются вручную для более сложных или специфичных случаев. 🚩Встроенные структуры данных К ним относятся те типы данных, которые изначально встроены в Python. Они обеспечивают простое и удобное управление данными. Вот основные типы: 🟠Список (List) Массив, который может содержать элементы разных типов. Динамический (размер меняется), упорядоченный (элементы хранятся в порядке добавления).
my_list = [1, "hello", 3.14]
print(my_list[1])  # "hello"
🟠Кортеж (Tuple) Похож на список, но неизменяемый. Используется для данных, которые не должны быть изменены.
my_tuple = (10, 20, 30)
print(my_tuple[0])  # 10
🟠Множество (Set) Неупорядоченная коллекция уникальных элементов. Удобно для работы с множествами (поиск пересечений, объединений и т.д.).
my_set = {1, 2, 3, 2}
print(my_set)  # {1, 2, 3}
🟠Словарь (Dictionary) Хранит пары ключ-значение. Очень эффективен для быстрого поиска данных по ключу.
my_dict = {"name": "Alice", "age": 25}
print(my_dict["name"])  # Alice
🚩Пользовательские структуры данных Эти структуры создаются с помощью классов или других механизмов, доступных в Python. Они применяются для решения задач, которые не могут быть эффективно выполнены встроенными средствами. 🟠Стек (Stack) Принцип работы: LIFO (последним пришел — первым ушел). Реализуется через список или collections.deque.
stack = []
stack.append(10)  # Добавление
stack.append(20)
print(stack.pop())  # Удаление последнего элемента (20)
🟠Очередь (Queue) Принцип работы: FIFO (первым пришел — первым ушел). Реализуется через collections.deque или библиотеку queue.
from collections import deque

queue = deque()
queue.append(10)
queue.append(20)
print(queue.popleft())  # 10
🟠Связный список (Linked List) Элементы связаны друг с другом через указатели. Гибче массивов, но сложнее в реализации.
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        if not self.head:
            self.head = Node(data)
        else:
            current = self.head
            while current.next:
                current = current.next
            current.next = Node(data)
Ставь 👍 и забирай 📚 Базу знаний

Не дают оффер, хотя отвечаю на все вопросы ИДЕАЛЬНО❗️ Знакома такая ситуация:
Прошёл 4 технических собеседования, не ответил всего на 1 очень глубокий вопрос. Не понимаю, почему не дают оффер?
Тут может сыграть множество факторов: 1️⃣- Удача: просто другому человеку по каким-то не зависящим от нас причинам повезло больше. Так бывает, ничего с этим не поделаешь, когда-то повезет и тебе. Кто-то чуть раньше закончил собеседование, чуть ближе живет к офису, чуть меньше просит и т.д. Не паримся и просто идем проходить собесы дальше, всё обязятельно придет. 2️⃣- Софт скилы: это уже НАМНОГО хуже 🤯 Запомни, разраб: каким бы скиловым в техническом плане ты ни был, тебя никогда не возьмут на работу, если ты не умеешь в софт скилы. © Джейсон Стетхем А что такое софт скилы❓ Это то, как ты общаешься с людьми, твоё поведение в спорных ситуациях, насколько с тобой комфортно общаться и умеешь ли ты слушать. Уже во всех компаниях внедрено правило: Если человек прошёл техническую часть НЕ идеально, но с отличными софт скилами - его возьмут НАМНОГО охотнее, чем человека с плохими софт скилами, который прошёл техническую часть идеально. Читай продолжение на канале ПитонЯра

Приглашаем на Yandex Neuro Scale В этом году главная конференция Yandex Cloud объединит разработчиков, архитекторов, инженеро
Приглашаем на Yandex Neuro Scale В этом году главная конференция Yandex Cloud объединит разработчиков, архитекторов, инженеров и IT-руководителей, чтобы обменяться опытом и увидеть, как работают технологии, которые меняют индустрии. 7 тематических треков, 50+ докладов, реальные бизнес-кейсы и нетворкинг! ✨Участие бесплатное, нужно только зарегистрироваться!✨ Зарегистрироваться #реклама 16+ scale.yandex.cloud О рекламодателе Реклама на Яндексе

🤔 Что возвращает декоратор? Обычно декоратор возвращает функцию или объект, который будет вызываться вместо оригинальной функции. Это может быть обёртка с дополнительной логикой или модифицированная функция. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний