Python | Вопросы собесов
前往频道在 Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
显示更多📈 Telegram 频道 Python | Вопросы собесов 的分析概览
频道 Python | Вопросы собесов (@python_easy_ru) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 12 669 名订阅者,在 技术与应用 类别中位列第 9 525,并在 俄罗斯 地区排名第 50 092 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 12 669 名订阅者。
根据 07 十月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -109,过去 24 小时变化为 -5,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 6.04%。内容发布后 24 小时内通常能获得 4.26% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 765 次浏览,首日通常累积 540 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 2。
- 主题关注点: 内容集中在 ставь, модуль, строка, docker, alice 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Сайт: https://easyoffer.ru/
Все каналы: t.me/+xGeAw6ckJ4liYzQy
Контакт для рекламы: @sendme_ads”
凭借高频更新(最新数据采集于 08 十月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
12 669
订阅者
-524 小时
-327 天
-10930 天
帖子存档
12 668
Будьте в центре внимания — с Прайм-баннером
С новым медийным форматом Прайм-баннер вы можете не просто размещать рекламу на самых популярных сервисах Яндекса с высоким Brand Safety, а гибко управлять кампанией:
— Оптимизируйте стоимость размещения — формат доступен по аукционной модели без порога входа
— Настраивайте кросс-частоту и исключайте из показов неподходящие площадки
— Размещайтесь как на уже знакомых, так и на уникальных местах показа
— Выбирайте нужные среди более чем 600 таргетингов без наценок
— Оценивайте результаты с помощью исследований Brand Lift, Search Lift, Visit Lift и Target Lift
Узнайте больше о возможностях Прайм-баннера для вашего бренда.
Узнать больше
#реклама 16+
yandex.ru
О рекламодателе
12 668
🤔 Как узнать версию Python?
Через команду в терминале или встроенную переменную. Это позволяет узнать точную установленную версию интерпретатора.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 668
Корпоративное обучение со скидкой −15 % и курс бесплатно
Планируете обучение сотрудников, но хочется сэкономить HR-бюджет?
В Яндекс Практикуме сейчас тройная выгода для компаний:
✅ До 30 июня курсы Практикума доступны по старым ценам (с 1 июля цены вырастут*).
✅ На всё обучение — скидка 15%.
✅ А ещё вы бесплатно получите курс «Мастерство убеждения в рабочих коммуникациях».
Яндекс Практикум — выбор компаний № 1 в сфере корпоративного обучения. Нам доверяют развитие сотрудников 5500+ компаний. Приходите и вы прокачивать свою команду.
Узнать больше
#реклама 16+
practicum.yandex.ru
О рекламодателе
12 668
🤔 Как в питоне реализуется многопоточность. Какими модулями?
Многопоточность в 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())
Ставь 👍 и забирай 📚 Базу знаний12 668
Kaspersky Premium со скидкой до 28%
Покупайте Kaspersky Premium со скидкой до 28% и получайте гарантированные ценные подарки от партнёров, а также возможность участовать в розыгрыше путешествия.
Узнать больше
#реклама 16+
kaspersky.ru
О рекламодателе
12 668
🤔 Какие неизменяемые типы данных есть?
К неизменяемым типам относятся: строки, числа (int, float), булевы значения, кортежи, frozenset, None и bytes. Такие объекты нельзя изменить после создания, любые операции с ними создают новые экземпляры.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 668
Получи грант до 3,48 млн на обучение дизайну
Поступай на дизайн в Центральный университет с грантом.
Для учеников 10–11-х классов и СПО. Освой графический, UI/UX и продуктовый дизайн. Создавай визуальные концепты будущего.
На программе студенты получают фундаментальную базу, развивают прикладные навыки, приобретают опыт работы над реальными проектами, собирают портфолио и строят связи внутри дизайн-сообщества
Подать заявку
#реклама 16+
cu.ru
О рекламодателе
12 668
🤔 Что такое 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'
Ставь 👍 и забирай 📚 Базу знаний12 668
Нужен мессенджер для работы?
Битрикс24 — ваш мессенджер для работы и бизнеса.
Личные и групповые чаты, видеозвонки и каналы в одном сервисе. Приглашайте коллег и внешние команды. Работает как привычный мессенджер.
Есть бесплатный тариф. Начните работать уже сейчас.
Битрикс24 — мессенджер для вашей компании.
Попробовать
#реклама 16+
bitrix24.ru
О рекламодателе
12 668
🤔 При каких ошибках HTTP есть смысл ретраить?
Ретрай (повтор запроса) возможен при:
- 429 (Too Many Requests) — если сервер просит подождать.
- 503 (Service Unavailable) — сервер временно недоступен.
- 502/504 — сбои на уровне прокси/шлюзов, возможно временные.
Ретрай не имеет смысла при ошибках клиента (например, 400 или 404).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 668
Получи грант до 1,35 млн руб. на обучение в магистратуре
Хочешь развиваться в сфере ИТ и получить фундаментальные знания с практикой?
Поступай в магистратуру Центрального университета!
— 4 офлайн программы по востребованным направлениям ИТ
— 2 онлайн-программы: машинное обучение и продуктовый менеджмент
— 550 грантов до 75%
— Вечерние занятия и учеба по выходным — удобно совмещать с работой
— Обучение по модели STEM-образования: на стыке науки, технологий и бизнеса
— Возможность стажировок и трудоустройства в ведущих компаниях
— Государственный диплом за 2 года
Магистратура в Центральном университете — это современный подход к образованию, сильный преподавательский состав и актуальные кейсы от индустрии. Оставляй заявку на грант уже сейчас!
Зарегистрироваться
#реклама 16+
cu.ru
О рекламодателе
12 668
🤔 Что делать если нужно перехватить исключение, выполнить действия и опять возбудить это же исключение?
Если нужно:
Перехватить исключение
Выполнить какие-то действия (лог, очистка, уведомление и т. д.)
Снова выбросить это же исключение
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() # Гарантированно закроет файл
Ставь 👍 и забирай 📚 Базу знаний12 668
Ищу желающих заполнять карточки товаров на ВБ!
Нужно создавать карточки на ВБ. Ничего сложного.
Работа полностью на удаленке с зп до150 000 рублей в месяц.
Без опыта, нужен только телефон, занятость 3-6 часов в день.
Всему обучат на бесплатном курсе и после возьму на работу:
✅ 3 дня уроков по 30 минут
✅ Домашки с проверкой и оплатой бонусами
✅ Плачу 10 тыс за каждую выполненную домашку
Все кто пройдет курс, получат сертификат от школы с образовательной лицензией.
⚡ Набор заканчивается завтра.
👍 Для регистрации жмите кнопку "Зарегистрироваться":
Зарегистрироваться
#реклама 16+
course.wildmanager.ru
О рекламодателе
12 668
🤔 Что такое dict comprehensions?
Это способ быстро создать словарь из другого итерируемого объекта, задав, как именно формируются ключи и значения. Такой подход делает код компактным и читаемым, особенно когда нужно создать словарь на основе списка или другого словаря.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 668
Пинарты для городской среды и бизнеса
Интерактивные арт-объекты для общественных пространств, которые притягивают людей и вовлекают с первого касания
Узнать больше
#реклама
pinart.urband.ru
О рекламодателе
12 668
🤔 Как управлять кешированием в 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Ставь 👍 и забирай 📚 Базу знаний
12 668
Как стать QA с нуля и выйти на оффер от 150 К/мес
Если ты:
— хочешь стать тестировщиком, но не знаешь, с чего начать
— уже учился QA сам или на курсах, но до оффера так и не дошёл
— работаешь в IT/QA, но хочешь выйти на оффер выше
Проблема в том, что многие заходят в IT вслепую: смотрят ролики, проходят курсы, но всё равно не понимают, что учить, где брать практику и как проходить собеседования.
Без системы легко застрять на любом этапе: на старте, после обучения или уже в работе.
В канале я делюсь фишками, которые провели меня от джуна без опыта до офферов в X5, .bank и MTS Digital:
— с чего начать
— что нужно для первого оффера
— как расти в доходе в QA
Подписывайся
Подписаться
#реклама 16+
edqa.ru
О рекламодателе
12 668
🤔 Компоненты Django?
– Models — работа с базой данных,
– Views — логика обработки запросов,
– Templates — HTML-шаблоны,
– URLs — маршруты,
– Forms — формы и валидация,
– Admin — панель администратора,
– Middleware — перехватчики запросов/ответов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 668
Зарабатывайте на установках Яндекс Браузера
Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайтов для скачивания файлов и авторов статей.
Вы можете предлагать его своим клиентам и аудитории — и зарабатывать на новых установках.
Выплаты до 500₽ за каждую установку Яндекс Браузера.
Подать заявку
#реклама 16+
partner.browser.yandex.ru
О рекламодателе
12 668
🤔 Назовите основные мидлвари, зачем они нужны
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/Ставь 👍 и забирай 📚 Базу знаний
