Python | Вопросы собесов
前往频道在 Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
显示更多📈 Telegram 频道 Python | Вопросы собесов 的分析概览
频道 Python | Вопросы собесов (@python_easy_ru) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 12 664 名订阅者,在 技术与应用 类别中位列第 9 630,并在 俄罗斯 地区排名第 50 618 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 12 664 名订阅者。
根据 08 十月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -96,过去 24 小时变化为 2,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 6.00%。内容发布后 24 小时内通常能获得 4.22% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 760 次浏览,首日通常累积 535 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 2。
- 主题关注点: 内容集中在 ставь, модуль, строка, docker, alice 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Сайт: https://easyoffer.ru/
Все каналы: t.me/+xGeAw6ckJ4liYzQy
Контакт для рекламы: @sendme_ads”
凭借高频更新(最新数据采集于 09 十月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
12 664
订阅者
+224 小时
-287 天
-9630 天
帖子存档
12 663
🤔 Что означает %s?
%s — это форматная строка, placeholder для вставки строки. Применяется при форматировании строк через оператор %. Используется для подстановки значений в строку определённого типа (в данном случае — строка).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 663
🤔 Что такое паттерн Заместитель (Proxy)?
Это структурный шаблон проектирования, который предоставляет объект, управляющий доступом к другому объекту. Этот паттерн создаёт суррогат или заместителя для другого объекта и контролирует доступ к нему.
🚩Зачем нужен паттерн Заместитель
🟠Управление доступом
Когда необходимо контролировать доступ к ресурсу.
🟠Отложенная инициализация
Когда необходимо отложить создание ресурсоёмких объектов до момента их первого использования.
🟠Управление ресурсами
Для управления ресурсами, такими как память или сетевые соединения.
🟠Логирование и кэширование
Для добавления дополнительной функциональности, такой как логирование или кэширование, без изменения кода основного объекта.
🚩Типы заместителей
🟠Управляющий заместитель (Virtual Proxy):
Контролирует доступ к объекту, создавая его по требованию.
🟠Защитный заместитель (Protection Proxy):
Контролирует доступ к объекту, ограничивая права пользователей.
🟠Удалённый заместитель (Remote Proxy)
Управляет доступом к объекту, находящемуся в другом адресном пространстве.
🟠Кэш-прокси (Cache Proxy)
Кэширует результаты запросов к объекту для повышения производительности.
🚩Как используется паттерн Заместитель
Заместитель реализует интерфейс основного объекта и перенаправляет вызовы к реальному объекту, добавляя при этом дополнительную функциональность. В этом примере класс
Proxy контролирует доступ к классу RealSubject, добавляя проверку доступа и логирование.
from abc import ABC, abstractmethod
class Subject(ABC):
@abstractmethod
def request(self):
pass
class RealSubject(Subject):
def request(self):
print("Реальный объект: Обработка запроса.")
class Proxy(Subject):
def __init__(self, real_subject):
self._real_subject = real_subject
def request(self):
if self.check_access():
self._real_subject.request()
self.log_access()
def check_access(self):
print("Заместитель: Проверка доступа перед выполнением запроса.")
return True
def log_access(self):
print("Заместитель: Логирование времени запроса.")
# Клиентский код
real_subject = RealSubject()
proxy = Proxy(real_subject)
proxy.request()
Ставь 👍 и забирай 📚 Базу знаний12 663
Бесплатная конференция по PostgreSQL
Регистрируйся на бесплатную конференцию по PostgreSQL — 19.03.2026.📅
Эксперты расскажут о разработке, администрировании и новинках мира Postgres.
✅ Бесплатное участие
✅ Опытные спикеры
✅ 25+ тематических докладов
✅ Рабочие кейсы
Каждый участник получает именной Сертификат участника мероприятия.
Одни из немногих спикеров конференции:
— Андрей Бородин
PostgreSQL Major contributor, руководитель подразделения разработки РСУБД с открытым исходным кодом Yandex Cloud
— Родион Хабибов
DevOps-инженер «СберСервис»
— Андрей Овчаренко
Руководитель отдела Java-разработки Московской биржи
... и многие другие.
Регистрируйся, будет интересно!
И бесплатно!
Зарегистрироваться
#реклама 16+
pgbootcamp.ru
О рекламодателе
12 663
🤔 Что такое IP-адрес и доменное имя?
- IP-адрес — числовой идентификатор устройства в сети (например, 192.168.1.1 или IPv6-адрес).
- Доменное имя — читаемый адрес, который указывает на IP (например, example.com).
DNS (система доменных имён) преобразует доменные имена в IP-адреса, чтобы браузеры знали, куда подключаться.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 663
🤔 Что можете сказать о конструкции import package.item?
Конструкция import package.item используется для импорта конкретного подмодуля или элемента из пакета в Python.
🚩Пакеты и Подмодули
Пакет — это каталог, который содержит файл
__init__.py и может содержать подкаталоги и модули. Подкаталоги в пакете также могут содержать файлыия import py, что делает их под-пакетами. Пример структуры пакета:
package/вероятность
py item.py subpackage/Конструкции
py subitem.py🚩Импорт Подмодуля Конструкция
import package.item позволяет импортировать подмодуль item из пакета package. Например:
import package.item
# Теперь вы можете использовать функции и классы из package.item
package.item.some_function()
🚩Почему это важно?
🟠Организация кода
Пакеты позволяют структурировать код в иерархическую систему, что делает его более организованным и модульным.
🟠Избежание конфликтов имен
Использование пакетов помогает избежать конфликтов имен, так как разные модули могут иметь одинаковые имена, но располагаться в разных пакетах.
🟠Управление зависимостями
Пакеты упрощают управление зависимостями между различными частями кода.
Структура каталога
math_operations/init.
py addition.py subtraction.pyКод вort package.ite
def add(a, b):
return a + b
Код вport package.item
def subtract(a, b):
return a - b
Использование в скрипте
import math_operations.addition
import math_operations.subtraction
result_add = math_operations.addition.add(5, 3)
result_subtract = math_operations.subtraction.subtract(5, 3)
print("Addition:", result_add) # Выведет: Addition: 8
print("Subtraction:", result_subtract) # Выведет: Subtraction: 2
Ставь 👍 и забирай 📚 Базу знаний12 663
🤔 Как выглядит HTTP-запрос?
HTTP-запрос содержит:
- Стартовую строку: метод (GET, POST), путь (/page), версия (HTTP/1.1)
- Заголовки: информация о браузере, типе контента, авторизации и др.
- Тело запроса (не всегда): обычно есть у POST/PUT и содержит данные формы, JSON и т.д.
Всё это отправляется на сервер, который возвращает HTTP-ответ.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 663
🤔 Какие есть коды ошибок HTTP?
В HTTP коды состояния указывают, как сервер обработал запрос. Они делятся на 5 категорий:
1xx (Информационные – запрос принят, продолжаем.
2xx (Успешные) – всё хорошо.
3xx (Перенаправления) – запрашиваемый ресурс перемещён.
4xx (Ошибки клиента) – клиент отправил неправильный запрос.
5xx (Ошибки сервера) – сервер не смог обработать запрос.
🚩Как исправить ошибки HTTP?
4xx:
400: Проверить формат запроса.
401: Убедиться, что пользователь авторизован.
403: Проверить права доступа.
404: Убедиться, что URL правильный.
5xx:
500: Проверить код сервера (ошибки в логах).
502/504: Проверить настройки Nginx/Proxy.
503: Сервер перегружен → добавить балансировку нагрузки.
Ставь 👍 и забирай 📚 Базу знаний
12 663
IT-магистратура ИТМО, МИФИ в партнёрстве с Яндексом
Освойте высокооплачиваемую IT-профессию. Актуальные программы ИТМО и МФТИ 2026 года, диплом гособразца, много практики от Яндекса. Гибкий график, обучение полностью онлайн, господдержка оплаты, отсрочка от армии
Узнать больше
#реклама 16+
practicum.yandex.ru
О рекламодателе
12 663
🤔 Как в обычном tuple происходит обращение?
В обычном tuple доступ к элементам осуществляется только по индексу
Обычные кортежи не имеют имён полей, и их нельзя использовать как именованные структуры без дополнительных обёрток.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 663
🤔 В чем отличие изменяемые / неизменяемые?
В Python все данные делятся на изменяемые (mutable) и неизменяемые (immutable)
🚩Неизменяемые (`immutable`) типы
После создания их нельзя изменить!
x = 10
print(id(x)) # 140735598722544 (адрес в памяти)
x = x + 5 # Создаётся новый объект!
print(id(x)) # 140735598722704 (новый адрес)
Пример: str неизменяемая
s = "hello"
print(id(s)) # 140735598723664
s = s + " world" # Создаётся новая строка!
print(id(s)) # 140735598724240 (новый адрес)
🚩Изменяемые (`mutable`) типы
Можно менять их содержимое без создания нового объекта.
lst = [1, 2, 3]
print(id(lst)) # 140735598722544
lst.append(4) # Изменяем список
print(id(lst)) # 140735598722544 (адрес остался тот же!)
Пример: dict изменяемый
d = {"name": "Alice"}
print(id(d)) # 140735598723664
d["age"] = 25 # Добавляем ключ
print(id(d)) # 140735598723664 (адрес не изменился!)
🚩Почему это важно?
Неизменяемые объекты безопаснее для ключей dict и set
d = {}
d[[1, 2, 3]] = "Ошибка!" # ❌ TypeError: unhashable type: 'list'
Используем tuple вместо list (он неизменяемый)
d[(1, 2, 3)] = "OK"
Ошибки с изменяемыми значениями по умолчанию
def add_item(lst=[]): # ❌ Опасный код!
lst.append(1)
return lst
print(add_item()) # [1]
print(add_item()) # [1, 1] ❌ Список не создаётся заново!
Используем None вместо списка
def add_item(lst=None):
if lst is None:
lst = []
lst.append(1)
return lst
🚩Копирование объектов (`copy()` vs `deepcopy()`)
copy() делает поверхностную копию (новый объект, но старые вложенные элементы).
deepcopy() делает глубокую копию (всё новое).
import copy
lst1 = [[1, 2, 3], [4, 5, 6]]
lst2 = copy.copy(lst1) # Поверхностная копия
lst2[0][0] = 99
print(lst1) # [[99, 2, 3], [4, 5, 6]] ❌ Исходный список изменился!
Используем deepcopy() для полной независимой копии
lst3 = copy.deepcopy(lst1)
lst3[0][0] = 100
print(lst1) # [[99, 2, 3], [4, 5, 6]] ✅ Не изменился!
Ставь 👍 и забирай 📚 Базу знаний12 663
🤔 В чем разница между except и *except?
*except используется в сочетании с ExceptionGroup и позволяет обрабатывать отдельные подгруппы исключений. Это синтаксис нового формата перехвата в Python 3.11 и выше, применимый к современным задачам с групповой обработкой ошибок.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 663
🤔 Что такое 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 663
🤔 Что такое CGI? Плюсы, минусы.
CGI (Common Gateway Interface): протокол для взаимодействия веб-сервера с программами на стороне сервера.
Плюсы: простота, независимость от языка программирования.
Минусы: медленная обработка запросов, так как для каждого запуска создаётся отдельный процесс.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 663
🤔 Что такое 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).
➖Неправильное управление куки может привести к утечкам данных.
Ставь 👍 и забирай 📚 Базу знаний12 663
Ищу желающих заполнять карточки товаров на ВБ!
Работа полностью на удаленке с зп до 150 000 рублей в месяц.
Без опыта, нужен только телефон, занятость 3-6 часов в день.
Всему обучат на бесплатном курсе и после возьму на работу:
✅ 3 дня уроков по 30 минут
✅ Домашки с проверкой и оплатой бонусами
✅ Плачу 10 тыс за каждую выполненную домашку
Все кто пройдет курс, получат сертификат от школы с образовательной лицензией.
⚡ Набор заканчивается завтра.
👍 Для регистрации жмите кнопку "Зарегистрироваться"
Зарегистрироваться
#реклама 16+
course.wildmanager.ru
О рекламодателе
12 663
🤔 Почему мы используем enumerate() при итерации последовательности?
Потому что он позволяет одновременно получить и индекс, и значение. Это удобно и читаемо, особенно если требуется номер элемента в цикле.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 663
🤔 Что такое блокировки (локи) в БД?
Блокировка (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), другие запросы ждут бесконечно. Решение: короткие транзакции, автоматическое завершение.
🟠Снижение производительности
Чем больше блокировок, тем медленнее работа БД.
Ставь 👍 и забирай 📚 Базу знаний12 663
Аукцион выделенных серверов!
Серверы дешевеют у вас на глазах!
Новые лоты каждый день, скидки до -35% на весь срок аренды.
Успейте арендовать, пока лот не ушел другому!
Получить предложение
#реклама 16+
selectel.ru
О рекламодателе
12 663
🤔 Что такое Docker container?
Docker container — это запущенный экземпляр образа, изолированный процесс с собственным файловым пространством, сетью и конфигурацией. Контейнеры можно останавливать, перезапускать, удалять и масштабировать.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
12 663
Сегодня последний день, когда можно приобрести пожизненный PRO тариф easyoffer
Акция до 20 февраля 00:00
Покупаешь сейчас один раз — пользуешься всю жизнь без лимита, включая все будущие функции.
👉 Смотри подробности тарифа и покупай на https://easyoffer.ru/
