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

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

Ir al canal en Telegram

📈 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 13 109 suscriptores, ocupando la posición 9 732 en la categoría Tecnologías y Aplicaciones y el puesto 50 668 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 13 109 suscriptores.

Según los últimos datos del 05 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -48, y en las últimas 24 horas de -5, 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.21%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 6.02% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 814 visualizaciones. En el primer día suele acumular 789 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 4.
  • 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:
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky

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

13 109
Suscriptores
-524 horas
-147 días
-4830 días
Archivo de publicaciones
Технический партнёр для комплексной поддержки сайта Полный цикл поддержки и развития сайтов включая интеграции, отказоустойчи
Технический партнёр для комплексной поддержки сайта Полный цикл поддержки и развития сайтов включая интеграции, отказоустойчивость, масштабирование. Поддерживаем и развиваем корпоративные сайты и клиентские кабинеты, включая сложные архитектуры. C 2018 года поддерживаем цифровую экосистему крупнейшего дистрибьютора Лада - от интеграций с 1С до проектирования отказоустойчивой инфраструктуры. Примеры задач: ✅ Поддержка и развитие клиентских кабинетов ✅ Интеграции с 1С и внутренними сервисами ✅ Миграции, мониторинг, техдолг ✅ Аудит, документации, процессы Обеспечиваем бесперебойную работу сайта, защиту и обновление Узнать больше #реклама ima-pr.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()  # Гарантированно закроет файл
Ставь 👍 и забирай 📚 Базу знаний

🤔 Для чего асинхронность? Асинхронность в Python используется для эффективной работы с задачами, которые тратят время на ожидание, например: - сетевые запросы; - операции с файлами; - задержки по времени; - работа с базами данных. Асинхронный код (async/await) позволяет выполнять другие действия во время ожидания, не блокируя основной поток. Это особенно полезно в веб-серверах, чат-ботах, API и других IO-bound задачах. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое блокировки (локи) в БД? Блокировка (lock) — это механизм, который предотвращает одновременный доступ к данным разными транзакциями, чтобы избежать конфликтов, повреждения данных или "гонки" процессов. Представь, что два человека редактируют один и тот же документ. Если они начнут менять его одновременно, файл может испортиться. Блокировки в БД работают так же — если один процесс изменяет данные, другой должен подождать, пока первый закончит. 🚩Почему нужны блокировки? 🟠Гарантия целостности данных предотвращает одновременные изменения одних и тех же строк. 🟠Избегание гонки данных (race condition) когда два запроса пытаются изменить одно и то же значение. 🟠Изоляция транзакций разные операции не мешают друг другу. 🚩Виды блокировок в БД 🟠По уровню охвата данных Строчная (Row Lock) – блокирует только одну строку таблицы. Табличная (Table Lock) – блокирует всю таблицу целиком. Блокировка всей базы (Database Lock) – редко используется, но блокирует всю БД.
BEGIN;
SELECT * FROM users WHERE id = 1 FOR UPDATE; -- Блокирует строку, пока транзакция не завершится
🟠По типу блокировки Эксклюзивная (Exclusive, X-Lock) – блокирует запись для всех (никакие другие операции её не изменят). Разделяемая (Shared, S-Lock) – блокирует только на запись (чтение возможно).
BEGIN;
UPDATE users SET balance = balance - 100 WHERE id = 1;
-- Пока транзакция не завершится, другая транзакция не сможет изменить balance пользователя 1.
🟠Явные и неявные блокировки Явные (ручные) – задаются программистом (SELECT ... FOR UPDATE). Неявные (автоматические) – создаются СУБД при INSERT, UPDATE, DELETE. 🚩Проблемы с блокировками 🟠Deadlock (взаимная блокировка) Если два запроса ждут друг друга, система "зависает". Решение: правильный порядок выполнения транзакций. 🟠Долгие блокировки Если транзакция не закрывается (COMMIT/ROLLBACK), другие запросы ждут бесконечно. Решение: короткие транзакции, автоматическое завершение. 🟠Снижение производительности Чем больше блокировок, тем медленнее работа БД. Ставь 👍 и забирай 📚 Базу знаний

🤔 Какая минимальная периодичность использования crontab? Минимально возможный интервал — одна минута. То есть cron может запускать задачу раз в минуту, но не чаще. Для меньших интервалов используются другие инструменты — например, systemd timers или сторонние планировщики. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое cookie? Это небольшой файл, который создаётся веб-сайтом и сохраняется в браузере пользователя. Куки используются для хранения информации, связанной с пользователем, чтобы улучшить его взаимодействие с сайтом. 🚩Зачем нужны куки? Куки помогают веб-сайтам «запоминать» данные о пользователе. Вот основные цели их использования: 🟠Аутентификация Например, после входа в аккаунт куки сохраняют ваш статус (авторизован вы или нет). 🟠Сохранение предпочтений Куки могут хранить ваши настройки, например, выбранный язык или тему сайта. 🟠Сессии и корзины Если вы добавляете товары в корзину в интернет-магазине, эта информация может храниться в куки. 🟠Отслеживание действий Куки используются для аналитики и рекламы, чтобы понять, как вы взаимодействуете с сайтом, или показать персонализированные объявления. 🚩Как работают куки? Когда вы заходите на сайт, сервер может отправить куки вашему браузеру вместе с HTTP-ответом. Браузер сохраняет эти данные и отправляет их обратно на сервер при последующих запросах. Куки привязаны к домену, и только этот домен может их читать. 🚩Пример использования куки Создание куки на сервере (Python, Flask)
from flask import Flask, request, make_response

app = Flask(__name__)

@app.route('/set_cookie')
def set_cookie():
    response = make_response("Cookie установлена!")
    response.set_cookie('username', 'JohnDoe')  # Устанавливаем куки с именем "username"
    return response

@app.route('/get_cookie')
def get_cookie():
    username = request.cookies.get('username')  # Получаем значение куки
    return f'Привет, {username}!' if username else 'Куки не найдены.'

if __name__ == '__main__':
    app.run(debug=True)
🚩Типы куки 🟠Сессионные куки (Session Cookies) Хранятся только во время работы браузера и удаляются после его закрытия. 🟠Постоянные куки (Persistent Cookies) Сохраняются на устройстве пользователя до истечения срока действия. 🟠Безопасные куки (Secure Cookies) Передаются только через HTTPS для обеспечения безопасности. 🟠HttpOnly куки Не доступны через JavaScript, используются для защиты от XSS-атак. 🚩Плюсы и минусы ➕Помогают сохранять пользовательские данные для упрощения работы с сайтом. ➕Могут улучшить пользовательский опыт за счёт персонализации. ➖Могут использоваться для отслеживания активности (privacy concerns). ➖Неправильное управление куки может привести к утечкам данных. Ставь 👍 и забирай 📚 Базу знаний

Тариф, с которым хватит на всё 50 ГБ и безлимитные минуты за 390 ₽ в месяц, если перенесете номер в Т-Мобайл до 31 августа Узнать больше #реклама tbank.ru О рекламодателе

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

🤔 Встроенные функции Python В Python есть встроенные функции (built-in functions) — это функции, которые можно использовать без импорта. Они делают код проще и удобнее. Полный список встроенных функций можно посмотреть так:
print(dir(__builtins__))
🚩Основные категории встроенных функций Работа с числами
print(abs(-5))  # 5
print(round(3.14159, 2))  # 3.14
print(pow(2, 3))  # 8
print(min([3, 1, 4]))  # 1
Работа со строками
print(len("hello"))  # 5
print(str(123))  # '123'
print(ord('A'))  # 65
print(chr(65))  # 'A'
Работа с коллекциями (списки, кортежи, множества)
a = [3, 1, 2]
print(sorted(a))  # [1, 2, 3]

nums = [1, 2, 3]
names = ["Alice", "Bob", "Charlie"]
print(list(zip(nums, names)))  # [(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')]
Работа с логикой и проверками
print(bool(""))  # False
print(all([True, 1, "Hello"]))  # True
print(any([0, "", None, 5]))  # True (есть хотя бы один True)
Работа с функциями
nums = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, nums))
print(squared)  # [1, 4, 9, 16]

evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens)  # [2, 4]
Работа с файлами
with open("file.txt", "w") as f:
    f.write("Hello, world!")

name = input("Введите имя: ")
print("Привет,", name)
Работа с объектами и атрибутами
print(type(42))  # <class 'int'>
print(isinstance(42, int))  # True
print(dir([]))  # Методы списка
Ставь 👍 и забирай 📚 Базу знаний

Как IT-компании увеличить продажи с помощью вебинаров? Делимся гайдом для маркетологов IT-компаний с рекомендациями ведущих р
Как IT-компании увеличить продажи с помощью вебинаров? Делимся гайдом для маркетологов IT-компаний с рекомендациями ведущих российских разработчиков и экспертов МТС Линк. Вы узнаете: - Как правильно использовать онлайн-мероприятия для продвижения; - Как собрать 10 000 потенциальных клиентов из любой точки мира в одном месте; - Как увеличить узнаваемость бренда и создать комьюнити вокруг него; - Как оценить вклад онлайн-мероприятия в продвижение компании и правильно обработать лиды; Бонус: кейс IT-компании с доходимостью до вебинаров 70% Получите методичку бесплатно на сайте! Скачать #реклама 16+ mts-link.ru О рекламодателе

🤔 Чем WebSocket отличается от обычного сокета? WebSocket — это протокол поверх TCP, предназначенный для двусторонней коммуникации в браузере. Он начинает с HTTP-запроса, а затем переходит в постоянное соединение. Обычные сокеты не привязаны к вебу и требуют ручной реализации протокола. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое @dataclass? Это декоратор, предоставленный модулем dataclasses, который автоматически генерирует специальные методы, такие как __init__,🤔 Что так🤔 Что т и другие, для вашего класса. Это упрощает создание классов, предназначенных для хранения данных, устраняя необходимость писать много шаблонного кода. 🚩Зачем нужен 🟠Упрощение кода Автоматически генерирует методы, сокращая шаблонный код. 🟠Читабельность Делает код более чистым и легким для понимания. 🟠Удобство Обеспечивает удобные и мощные возможности для работы с данными. 🚩Как использовать Нужно импортировать его из модуля dataclasses и применить к классу. Внутри класса достаточно определить только поля данных.
from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

# Примеры использования
person1 = Person(name="Alice", age=30)
person2 = Person(name="Bob", age=25)

print(person1)  # Вывод: Person(name='Alice', age=30)
print(person2)  # Вывод: Person(name='Bob', age=25)
print(person1 == person2)  # Вывод: False
🚩Автоматически генерируемые методы 🟠`__init__` Инициализирует объект с заданными значениями атрибутов. 🟠`__repr__` Возвращает строковое представление объекта, удобное для отладки. 🟠`__eq__` Сравнивает объекты на равенство по их атрибутам. 🟠`__lt__`, __le__,🤔 Что так🤔 Что такМогут быть сгенерированы для сравнения объектов (если указано). 🚩Настройка поведения Вы можете настроить поведение @dataclass с помощью параметров, таких как order, frozen, и других. 🟠`order=True` Генерирует методы для сравнения объектов. 🟠`frozen=True` Делает экземпляры неизменяемыми (immutable). Пример
from dataclasses import dataclass

@dataclass(order=True, frozen=True)
class Person:
    name: str
    age: int

person1 = Person(name="Alice", age=30)
person2 = Person(name="Bob", age=25)

print(person1 > person2)  # Вывод: True (поскольку 'Alice' > 'Bob' по алфавиту, если имена равны, сравниваются возраста)
# person1.age = 31  # Ошибка: FrozenInstanceError (поскольку класс заморожен)
🚩Поля данных и их настройки Вы можете использовать функцию field() для настройки отдельных полей, например, для указания значений по умолчанию или исключения полей из методов
5)

print(
🤔 Что т и других.
from dataclasses import dataclass, field

@dataclass
class Person:
    name: str
    age: int = 0
    address: str = field(default="Unknown", repr=False)

person = Person(name="Alice")
print(person)  # Вывод: Person(name='Alice', age=0)
Ставь 👍 и забирай 📚 Базу знаний

У вас дефицит осетинских пирогов в организме! Едем «лечиться» в Северную Осетию. Маршрут на выходные — в новой серии тревел-ш
У вас дефицит осетинских пирогов в организме! Едем «лечиться» в Северную Осетию. Маршрут на выходные — в новой серии тревел-шоу «Доедешь — напиши» от Яндекс Путешествий. Вместе с актёром и блогером Никитой Тау вы: увидите старинный некрополь, попадёте во Владикавказ 19-го века, найдёте лучшие смотровые площадки и приготовите настоящий осетинский пирог. Смотреть #реклама 16+ youtu.be О рекламодателе

🤔 Какие основные функции Python есть? Встроенные функции Python включают такие базовые инструменты, как len, type, print, input, int, str, list, dict, sum, max, min, zip, enumerate, range, map, filter и многие другие. Они обеспечивают широкий функционал без необходимости импортировать внешние библиотеки. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

REKONFA Live 6 ноября приглашаем рекламодателей, агентства и рекламные площадки обсудить технологии, маркетинговые инструмент
REKONFA Live 6 ноября приглашаем рекламодателей, агентства и рекламные площадки обсудить технологии, маркетинговые инструменты и актуальные новинки. Ключевые участники рынка поделятся опытом и расскажут: — О ситуации на рынке рекламы — Как продвигать и продавать в интернете в 2025 году — Как бизнесу адаптироваться к меняющимся условиям Вас ждут доклады на актуальные темы, классный нетворкинг, вдохновляющая атмосфера для творчества и креатива. Встречаемся 6 ноября в Москве. Для тех, кто не сможет приехать, организуем интерактивное digital-шоу. Мероприятие бесплатное, нужно только зарегистрироваться. Зарегистрироваться #реклама 16+ ya.rekonfa.ru О рекламодателе

🤔 Почему вычислять большие значения в асинхронной функции плохо? Асинхронность (asyncio) в Python не выполняет код параллельно, а переключается между задачами во время ожидания (I/O-bound). Если в async-функции делать тяжёлые вычисления (CPU-bound), это блокирует asyncio, потому что в Python есть GIL (Global Interpreter Lock). 🚩Асинхронность в Python подходит для ввода-вывода (I/O-bound) Асинхронность позволяет выполнять задачи без блокировки, но только если они ждут чего-то (файлы, сеть, БД).
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"] * 5
    results = await asyncio.gather(*(fetch(url) for url in urls))

asyncio.run(main())
🚩Проблема с `async` и тяжёлыми вычислениями (CPU-bound) Если в async-функции делать тяжёлые вычисления, Python не сможет переключаться между задачами.
import asyncio

async def heavy_task(n):
    print(f"Вычисляю {n}...")
    total = sum(i**2 for i in range(n))  # Долгий процесс
    return total

async def main():
    await asyncio.gather(heavy_task(10**7), heavy_task(10**7))

asyncio.run(main())
🚩Как правильно выполнять вычисления в `async`? 🟠Использовать `asyncio.to_thread()` (делегирование в потоки) В Python 3.9+ можно выполнять CPU-задачи в отдельных потоках, не блокируя asyncio.
import asyncio

def heavy_computation(n):
    return sum(i**2 for i in range(n))

async def main():
    result = await asyncio.to_thread(heavy_computation, 10**7)
    print(result)

asyncio.run(main())
🟠Использовать `multiprocessing` (запуск на нескольких ядрах) Так как Python использует GIL, единственный способ выполнять настоящий параллелизм — это multiprocessing.
import asyncio
import multiprocessing

def heavy_computation(n):
    return sum(i**2 for i in range(n))

async def main():
    loop = asyncio.get_running_loop()
    with multiprocessing.Pool() as pool:
        result = await loop.run_in_executor(pool, heavy_computation, 10**7)
        print(result)

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

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

🤔 Байтовые массивы (byte array)? bytearray — это изменяемый тип, предназначенный для хранения последовательности байтов. Он используется для работы с бинарными данными, особенно когда нужно изменять отдельные байты без создания новых объектов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Баранкины и камни силы Смотрите на Кинопоиске с 7 августа. Семья таксистов обретает сверхсилы — и родственницу из XIX века. Фантастическая комедия с Андреем Федорцовым Узнать больше #реклама 16+ kinopoisk.ru О рекламодателе

🤔 Как отсортировать список словарей по определенному полю? Для сортировки списка словарей по определенному полю в Python удобно использовать функцию sorted() или метод sort(). Оба подхода позволяют указать ключ сортировки с помощью параметра key, где можно передать либо функцию, либо лямбда-выражение, которое извлекает значение из словаря для сортировки. 🚩Почему это важно? Списки словарей часто используются для хранения структурированных данных. Например, вы можете иметь список сотрудников, где каждый сотрудник представлен в виде словаря с полями, такими как имя, возраст и зарплата. Сортировка по определенному полю позволяет упорядочить данные, чтобы ими было проще пользоваться или отображать. 🚩Как это сделать? 🟠Использование функции `sorted()` Эта функция возвращает новый отсортированный список.
   employees = [
       {"name": "Alice", "age": 30, "salary": 70000},
       {"name": "Bob", "age": 25, "salary": 50000},
       {"name": "Charlie", "age": 35, "salary": 120000}
   ]

   # Сортировка по возрасту
   sorted_employees = sorted(employees, key=lambda x: x["age"])

   print(sorted_employees)
   
Результат
   [{'name': 'Bob', 'age': 25, 'salary': 50000},
    {'name': 'Alice', 'age': 30, 'salary': 70000},
    {'name': 'Charlie', 'age': 35, 'salary': 120000}]
   
🟠Использование метода `sort()` Этот метод изменяет существующий список.
   employees = [
       {"name": "Alice", "age": 30, "salary": 70000},
       {"name": "Bob", "age": 25, "salary": 50000},
       {"name": "Charlie", "age": 35, "salary": 120000}
   ]

   # Сортировка по зарплате
   employees.sort(key=lambda x: x["salary"])

   print(employees)
   
Результат
   [{'name': 'Bob', 'age': 25, 'salary': 50000},
    {'name': 'Alice', 'age': 30, 'salary': 70000},
    {'name': 'Charlie', 'age': 35, 'salary': 120000}]
   
🟠Сортировка в обратном порядке Установите параметр reverse=True, чтобы отсортировать в порядке убывания.
   sorted_employees_desc = sorted(employees, key=lambda x: x["age"], reverse=True)
   print(sorted_employees_desc)
   
🟠Использование функции `itemgetter` из модуля `operator` Это более эффективный способ, чем лямбда-функция, особенно для больших данных.
   from operator import itemgetter

   sorted_employees = sorted(employees, key=itemgetter("age"))
   print(sorted_employees)
   
🚩Обработка отсутствующих значений Если поле может отсутствовать в некоторых словарях, можно использовать параметр key для обработки таких ситуаций.
employees = [
    {"name": "Alice", "age": 30},
    {"name": "Bob"},
    {"name": "Charlie", "age": 35}
]

sorted_employees = sorted(employees, key=lambda x: x.get("age", 0))
print(sorted_employees)
Результат
[{'name': 'Bob'},
 {'name': 'Alice', 'age': 30},
 {'name': 'Charlie', 'age': 35}]
Ставь 👍 и забирай 📚 Базу знаний