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

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

Ir al canal en Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

Mostrar más

📈 Análisis del canal de Telegram Python | Вопросы собесов

El canal Python | Вопросы собесов (@python_easy_ru) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 12 668 suscriptores, ocupando la posición 9 607 en la categoría Tecnologías y Aplicaciones y el puesto 50 557 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 12 668 suscriptores.

Según los últimos datos del 06 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -104, y en las últimas 24 horas de -7, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 5.88%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 4.27% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 745 visualizaciones. En el primer día suele acumular 541 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 2.
  • Intereses temáticos: El contenido se centra en temas clave como ставь, модуль, строка, docker, alice.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads”

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 07 octubre, 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.

12 668
Suscriptores
-724 horas
-387 días
-10430 días
Archivo de publicaciones
Будьте в центре внимания — с Прайм-баннером С новым медийным форматом Прайм-баннер вы можете не просто размещать рекламу на с
Будьте в центре внимания — с Прайм-баннером С новым медийным форматом Прайм-баннер вы можете не просто размещать рекламу на самых популярных сервисах Яндекса с высоким Brand Safety, а гибко управлять кампанией: — Оптимизируйте стоимость размещения — формат доступен по аукционной модели без порога входа — Настраивайте кросс-частоту и исключайте из показов неподходящие площадки — Размещайтесь как на уже знакомых, так и на уникальных местах показа — Выбирайте нужные среди более чем 600 таргетингов без наценок — Оценивайте результаты с помощью исследований Brand Lift, Search Lift, Visit Lift и Target Lift Узнайте больше о возможностях Прайм-баннера для вашего бренда. Узнать больше #реклама 16+ yandex.ru О рекламодателе

🤔 Как узнать версию Python? Через команду в терминале или встроенную переменную. Это позволяет узнать точную установленную версию интерпретатора. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Корпоративное обучение со скидкой −15 % и курс бесплатно Планируете обучение сотрудников, но хочется сэкономить HR-бюджет? В
Корпоративное обучение со скидкой −15 % и курс бесплатно Планируете обучение сотрудников, но хочется сэкономить HR-бюджет? В Яндекс Практикуме сейчас тройная выгода для компаний: ✅ До 30 июня курсы Практикума доступны по старым ценам (с 1 июля цены вырастут*). ✅ На всё обучение — скидка 15%. ✅ А ещё вы бесплатно получите курс «Мастерство убеждения в рабочих коммуникациях». Яндекс Практикум — выбор компаний № 1 в сфере корпоративного обучения. Нам доверяют развитие сотрудников 5500+ компаний. Приходите и вы прокачивать свою команду. Узнать больше #реклама 16+ practicum.yandex.ru О рекламодателе

🤔 Как в питоне реализуется многопоточность. Какими модулями? Многопоточность в Python реализуется с помощью модуля threading, но из-за GIL (Global Interpreter Lock) потоки не могут выполняться параллельно на нескольких ядрах. 🟠Модуль `threading` (многопоточность, но с GIL) Модуль threading позволяет запускать несколько потоков (threads) в одном процессе.
import threading
import time

def task(name):
    print(f"{name} начал работу")
    time.sleep(2)  # Имитация задержки
    print(f"{name} завершил работу")

# Создаём два потока
t1 = threading.Thread(target=task, args=("Поток 1",))
t2 = threading.Thread(target=task, args=("Поток 2",))

t1.start()
t2.start()

t1.join()
t2.join()
print("Все потоки завершены")
Вывод
Поток 1 начал работу
Поток 2 начал работу
(пауза 2 секунды)
Поток 1 завершил работу
Поток 2 завершил работу
Все потоки завершены
🟠Модуль `multiprocessing` (настоящая параллельность) В отличие от threading, модуль multiprocessing создаёт отдельные процессы, которые могут выполняться на разных ядрах процессора.
import multiprocessing
import time

def task(name):
    print(f"{name} начал работу")
    time.sleep(2)
    print(f"{name} завершил работу")

if __name__ == "__main__":
    p1 = multiprocessing.Process(target=task, args=("Процесс 1",))
    p2 = multiprocessing.Process(target=task, args=("Процесс 2",))

    p1.start()
    p2.start()

    p1.join()
    p2.join()
    print("Все процессы завершены")
🟠Модуль `concurrent.futures` (более удобный API) Этот модуль позволяет легко управлять потоками (ThreadPoolExecutor) и процессами (ProcessPoolExecutor).
from concurrent.futures import ThreadPoolExecutor
import time

def task(n):
    time.sleep(2)
    return f"Готово: {n}"

with ThreadPoolExecutor(max_workers=2) as executor:
    results = executor.map(task, [1, 2, 3])
    
for result in results:
    print(result)
Пример ProcessPoolExecutor (процессы)
from concurrent.futures import ProcessPoolExecutor

def square(n):
    return n * n

with ProcessPoolExecutor() as executor:
    results = executor.map(square, [1, 2, 3, 4])

print(list(results))  # [1, 4, 9, 16]
🟠Модуль `asyncio` (асинхронность, не потоки!) Модуль asyncio не создаёт потоки или процессы, а работает через "корутины" и цикл событий (event loop).
import asyncio

async def task():
    print("Начало")
    await asyncio.sleep(2)  # Не блокирует другие задачи
    print("Конец")

async def main():
    await asyncio.gather(task(), task())

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

Kaspersky Premium со скидкой до 28% Покупайте Kaspersky Premium со скидкой до 28% и получайте гарантированные ценные подарки
Kaspersky Premium со скидкой до 28% Покупайте Kaspersky Premium со скидкой до 28% и получайте гарантированные ценные подарки от партнёров, а также возможность участовать в розыгрыше путешествия. Узнать больше #реклама 16+ kaspersky.ru О рекламодателе

🤔 Какие неизменяемые типы данных есть? К неизменяемым типам относятся: строки, числа (int, float), булевы значения, кортежи, frozenset, None и bytes. Такие объекты нельзя изменить после создания, любые операции с ними создают новые экземпляры. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Получи грант до 3,48 млн на обучение дизайну Поступай на дизайн в Центральный университет с грантом. Для учеников 10–11-х кла
Получи грант до 3,48 млн на обучение дизайну Поступай на дизайн в Центральный университет с грантом. Для учеников 10–11-х классов и СПО. Освой графический, UI/UX и продуктовый дизайн. Создавай визуальные концепты будущего. На программе студенты получают фундаментальную базу, развивают прикладные навыки, приобретают опыт работы над реальными проектами, собирают портфолио и строят связи внутри дизайн-сообщества Подать заявку #реклама 16+ cu.ru О рекламодателе

🤔 Что такое set? Это неупорядоченная коллекция уникальных элементов в Python. Это одна из встроенных структур данных языка, которая используется, когда вам нужно работать с наборами данных, исключая дубликаты и выполняя операции над множествами (например, пересечение, объединение и разность). 🚩Основные характеристики `set` 🟠Неупорядоченность Элементы множества не имеют фиксированного порядка, то есть вы не можете обращаться к элементам по индексу, как в списках или кортежах. 🟠Уникальность элементов Во множестве не может быть дубликатов. Если вы добавите во множество несколько одинаковых элементов, они будут храниться как один экземпляр. 🟠Изменяемость Множества в Python изменяемы: вы можете добавлять, удалять и изменять их элементы. Однако сами элементы множества должны быть неизменяемыми (например, числа, строки, кортежи). 🟠Быстродействие Операции проверки принадлежности (in), добавления и удаления элементов работают очень быстро, благодаря использованию хэш-таблиц в реализации множества. 🚩Создание множества 🟠Пустое множество Для создания пустого множества используется функция set(), так как {} создаёт пустой словарь
empty_set = set()
print(empty_set)  # Output: set()
🟠Создание множества с элементами Вы можете передать список, строку, кортеж или другой итерируемый объект в функцию set().
# Создание множества из списка
numbers = set([1, 2, 3, 4, 5])
print(numbers)  # Output: {1, 2, 3, 4, 5}

# Создание множества из строки (уникальные символы)
chars = set("hello")
print(chars)  # Output: {'h', 'e', 'l', 'o'}  (порядок может быть разным)
🟠Использование литералов Вы также можете использовать фигурные скобки {} для создания множества
fruits = {"apple", "banana", "cherry"}
print(fruits)  # Output: {'apple', 'banana', 'cherry'}
🚩Основные операции с множествами 🟠Добавление элементов Используется метод add()
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # Output: {1, 2, 3, 4}
🟠Удаление элементов remove() — удаляет элемент, выбрасывая ошибку, если его нет. discard() — удаляет элемент, не выбрасывая ошибку, если его нет.
my_set = {1, 2, 3}
my_set.remove(2)  # Удаляем элемент 2
print(my_set)  # Output: {1, 3}

my_set.discard(5)  # Ошибки не будет, если элемента 5 нет
pop() — удаляет и возвращает случайный элемент (так как множество неупорядочено)
my_set = {1, 2, 3}
removed_element = my_set.pop()
print(removed_element)  # Например: 1
print(my_set)  # Например: {2, 3}
🟠Очистка множества
my_set = {1, 2, 3}
my_set.clear()
print(my_set)  # Output: set()
🟠Проверка наличия элемента Используется оператор in
my_set = {1, 2, 3}
print(2 in my_set)  # Output: True
print(5 in my_set)  # Output: False
🚩Операции над множествами Python поддерживает классические операции теории множеств: 🟠Объединение (`union` или `|`) Возвращает множество, содержащее все элементы из двух множеств.
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2)  # Output: {1, 2, 3, 4, 5}
print(set1.union(set2))  # То же самое
🟠Пересечение (`intersection` или `&`) Возвращает элементы, которые присутствуют в обоих множествах.
print(set1 & set2)  # Output: {3}
print(set1.intersection(set2))  # То же самое
🟠Разность (`difference` или `-`) Возвращает элементы, которые присутствуют только в одном множестве (а не в другом).
print(set1 - set2)  # Output: {1, 2} (только в set1)
print(set1.difference(set2))  # То же самое
🟠Симметрическая разность (`symmetric_difference` или `^`) Возвращает элементы, которые есть в одном из множеств, но не в обоих сразу.
print(set1 ^ set2)  # Output: {1, 2, 4, 5}
print(set1.symmetric_difference(set2))  # То же самое
🚩Неизменяемое множество (`frozenset`) Если вам нужно создать множество, которое нельзя изменить, используйте frozenset
frozen = frozenset([1, 2, 3])
print(frozen)  # Output: frozenset({1, 2, 3})

# frozen.add(4)  # Ошибка: 'frozenset' object has no attribute 'add'
Ставь 👍 и забирай 📚 Базу знаний

Нужен мессенджер для работы? Битрикс24 — ваш мессенджер для работы и бизнеса. Личные и групповые чаты, видеозвонки и каналы в одном сервисе. Приглашайте коллег и внешние команды. Работает как привычный мессенджер. Есть бесплатный тариф. Начните работать уже сейчас. Битрикс24 — мессенджер для вашей компании. Попробовать #реклама 16+ bitrix24.ru О рекламодателе

🤔 При каких ошибках HTTP есть смысл ретраить? Ретрай (повтор запроса) возможен при: - 429 (Too Many Requests) — если сервер просит подождать. - 503 (Service Unavailable) — сервер временно недоступен. - 502/504 — сбои на уровне прокси/шлюзов, возможно временные. Ретрай не имеет смысла при ошибках клиента (например, 400 или 404). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Получи грант до 1,35 млн руб. на обучение в магистратуре Хочешь развиваться в сфере ИТ и получить фундаментальные знания с пр
Получи грант до 1,35 млн руб. на обучение в магистратуре Хочешь развиваться в сфере ИТ и получить фундаментальные знания с практикой? Поступай в магистратуру Центрального университета! — 4 офлайн программы по востребованным направлениям ИТ — 2 онлайн-программы: машинное обучение и продуктовый менеджмент — 550 грантов до 75% — Вечерние занятия и учеба по выходным — удобно совмещать с работой — Обучение по модели STEM-образования: на стыке науки, технологий и бизнеса — Возможность стажировок и трудоустройства в ведущих компаниях — Государственный диплом за 2 года Магистратура в Центральном университете — это современный подход к образованию, сильный преподавательский состав и актуальные кейсы от индустрии. Оставляй заявку на грант уже сейчас! Зарегистрироваться #реклама 16+ cu.ru О рекламодателе

🤔 Что делать если нужно перехватить исключение, выполнить действия и опять возбудить это же исключение? Если нужно: Перехватить исключение Выполнить какие-то действия (лог, очистка, уведомление и т. д.) Снова выбросить это же исключение
try:
    x = 1 / 0  # Ошибка деления на ноль
except ZeroDivisionError:
    print("Ошибка! Записываем в лог...")
    raise  # Повторно выбрасываем то же исключение
Вывод
Ошибка! Записываем в лог...
Traceback (most recent call last):
  File "script.py", line 2, in <module>
    x = 1 / 0
ZeroDivisionError: division by zero
Пример: Логирование перед повторным выбросом
import logging

logging.basicConfig(filename="errors.log", level=logging.ERROR)

try:
    user_input = int("abc")  # Ошибка ValueError
except ValueError as e:
    logging.error(f"Ошибка: {e}")  # Записываем в лог
    raise  # Повторно выбрасываем исключение
Пример: Очистка ресурсов перед выбросом исключения
try:
    file = open("data.txt", "r")
    data = file.read()
except FileNotFoundError:
    print("Файл не найден. Освобождаем ресурсы...")
    raise  # Снова выбрасываем исключение
finally:
    file.close()  # Гарантированно закроет файл
Ставь 👍 и забирай 📚 Базу знаний

Ищу желающих заполнять карточки товаров на ВБ! Нужно создавать карточки на ВБ. Ничего сложного. Работа полностью на удаленке
Ищу желающих заполнять карточки товаров на ВБ! Нужно создавать карточки на ВБ. Ничего сложного. Работа полностью на удаленке с зп до150 000 рублей в месяц. Без опыта, нужен только телефон, занятость 3-6 часов в день. Всему обучат на бесплатном курсе и после возьму на работу: ✅ 3 дня уроков по 30 минут ✅ Домашки с проверкой и оплатой бонусами ✅ Плачу 10 тыс за каждую выполненную домашку Все кто пройдет курс, получат сертификат от школы с образовательной лицензией. ⚡ Набор заканчивается завтра. 👍 Для регистрации жмите кнопку "Зарегистрироваться": Зарегистрироваться #реклама 16+ course.wildmanager.ru О рекламодателе

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

Пинарты для городской среды и бизнеса Интерактивные арт-объекты для общественных пространств, которые притягивают людей и вовлекают с первого касания Узнать больше #реклама pinart.urband.ru О рекламодателе

🤔 Как управлять кешированием в HTTP? Кэширование в HTTP позволяет уменьшить нагрузку на сервер и ускорить загрузку страниц за счёт сохранения копий ресурсов. Управление кэшем происходит через HTTP-заголовки, которые указывают, как долго хранить данные и когда обновлять их. 🟠Управление кэшированием через `Cache-Control` Cache-Control — основной заголовок для кэширования, который указывает, как долго хранить ресурс и когда обновлять его.
Cache-Control: no-cache            # Браузер всегда запрашивает ресурс заново
Cache-Control: no-store            # Запрещает кэширование вообще
Cache-Control: public, max-age=3600  # Кэшировать 1 час (3600 секунд)
Cache-Control: private, max-age=600  # Кэш только для одного пользователя (например, личный кабинет)
Cache-Control: must-revalidate     # Клиент должен проверять, истёк ли срок кэша перед загрузкой
🟠Управление кэшем с `ETag` (оптимизированное обновление) ETag — это уникальный идентификатор версии файла. Сервер отправляет ресурс с ETag:
ETag: "abc123"
При следующем запросе браузер отправляет If-None-Match:
If-None-Match: "abc123"
Если ресурс не изменился, сервер отвечает 304 Not Modified (клиент использует кэш). Если ресурс изменился — сервер отправляет новую версию.
HTTP/1.1 304 Not Modified
🟠Кэширование через `Last-Modified` Работает аналогично ETag, но вместо идентификатора используется дата последнего изменения. Сервер отправляет заголовок
Last-Modified: Wed, 21 Feb 2024 10:00:00 GMT
Браузер запрашивает ресурс с If-Modified-Since
If-Modified-Since: Wed, 21 Feb 2024 10:00:00 GMT
🟠Полное отключение кэша Если нужно всегда загружать свежие данные, используем:
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache  # Устарел, но нужен для старых браузеров
Expires: 0
🟠Управление кэшем через `Vary` Если ресурс зависит от заголовков (User-Agent, Accept-Encoding), используем Vary.
Vary: User-Agent
🟠Принудительное обновление кэша (Cache Busting) Если сервер отправил старый кэш, можно обновить ресурс с новым URL. Способы Добавить версию в URL
/style.css?v=2
Использовать хеш в имени файла:
/style.abc123.css
Ставь 👍 и забирай 📚 Базу знаний

Как стать QA с нуля и выйти на оффер от 150 К/мес Если ты: — хочешь стать тестировщиком, но не знаешь, с чего начать — уже учился QA сам или на курсах, но до оффера так и не дошёл — работаешь в IT/QA, но хочешь выйти на оффер выше Проблема в том, что многие заходят в IT вслепую: смотрят ролики, проходят курсы, но всё равно не понимают, что учить, где брать практику и как проходить собеседования. Без системы легко застрять на любом этапе: на старте, после обучения или уже в работе. В канале я делюсь фишками, которые провели меня от джуна без опыта до офферов в X5, .bank и MTS Digital: — с чего начать — что нужно для первого оффера — как расти в доходе в QA Подписывайся Подписаться #реклама 16+ edqa.ru О рекламодателе

🤔 Компоненты Django? – Models — работа с базой данных, – Views — логика обработки запросов, – Templates — HTML-шаблоны, – URLs — маршруты, – Forms — формы и валидация, – Admin — панель администратора, – Middleware — перехватчики запросов/ответов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Зарабатывайте на установках Яндекс Браузера Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайт
Зарабатывайте на установках Яндекс Браузера Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайтов для скачивания файлов и авторов статей. Вы можете предлагать его своим клиентам и аудитории — и зарабатывать на новых установках. Выплаты до 500₽ за каждую установку Яндекс Браузера. Подать заявку #реклама 16+ partner.browser.yandex.ru О рекламодателе

🤔 Назовите основные мидлвари, зачем они нужны Middleware (промежуточное ПО) — это специальные классы, которые обрабатывают запросы и ответы, проходящие через Django. Они позволяют изменять данные, проверять доступ, логировать действия и многое другое. 🚩Основные мидлвари Django 🟠SecurityMiddleware Добавляет важные HTTP-заголовки для защиты сайта: - Strict-Transport-Security (HTTPS) - X-Content-Type-Options: nosniff - X-Frame-Options: DENY 🟠CommonMiddleware Отвечает за: Перенаправление с APPEND_SLASH=True (если /about → перенаправит на /about/). Удаление www. (www.example.com → example.com). Обработка кодировки и контента. 🟠SessionMiddleware Позволяет Django хранить данные пользователя между запросами (например, авторизацию).
request.session["user_id"] = 42  # Сохраняем ID пользователя в сессии
🟠AuthenticationMiddleware Позволяет работать с request.user, автоматически определяя пользователя.
if request.user.is_authenticated:
    print(f"Пользователь: {request.user.username}")
🟠CSRF Middleware (CsrfViewMiddleware) Защищает от атак межсайтовой подделки запросов (CSRF). При обработке форм Django требует специальный CSRF-токен:
<form method="POST">
    {% csrf_token %}
    <input type="text" name="name">
</form>
🟠XFrameOptionsMiddleware Запрещает встраивать сайт в <iframe>, предотвращая атаку Clickjacking.
X-Frame-Options: DENY
🟠MessageMiddleware Позволяет передавать временные сообщения (django.contrib.messages).
from django.contrib import messages

messages.success(request, "Вы успешно вошли!")
messages.error(request, "Ошибка авторизации!")
🚩Как добавить или отключить мидлвари? Мидлвари хранятся в settings.py:
MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
]
🚩Как написать свой мидлвар? Допустим, хотим логировать все запросы. Создаём middleware.py
import datetime

class LogMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        print(f"[{datetime.datetime.now()}] Запрос: {request.path}")
        response = self.get_response(request)
        return response
Добавляем в settings.py
MIDDLEWARE.append("myapp.middleware.LogMiddleware")
Теперь в консоли будем видеть все запросы!
[2024-02-28 12:00:00] Запрос: /
[2024-02-28 12:01:00] Запрос: /login/
Ставь 👍 и забирай 📚 Базу знаний