Python | Вопросы собесов
前往频道在 Telegram
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky
显示更多📈 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 天
帖子存档
13 108
🤔 Что такое пакет?
Пакет (
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
Ставь 👍 и забирай 📚 Базу знаний13 108
⚡️ Айтишник из «VISION» скупил топовые айти-курсы и выложил гигабайты материалов к себе
Каждый найдет что-то по душе:
903 ГБ — Python
812 ГБ — Frontend
978 ГБ — C, C++
804 ГБ — Java
432 ГБ — C#, GameDev
411 ГБ — SQL & БД
309 ГБ — DevOps
998 ГБ — ИБ & Хакинг
773 ГБ — Kotlin, Swift
189 ГБ — PHP
201 ГБ — GoLang
170 ГБ — Rust
167 ГБ — QA-Тестирование
310 ГБ — 1C + Лицензии
495 ГБ — Машинное обучение
704 ГБ — Аналитика Данных
991 ГБ — Дизайн
Материалы в закрепе, постоянно пополняются👆🏻
13 108
🤔 Как можно проверить, что значение есть в словаре?
Проверить наличие ключа в словаре можно с помощью оператора in
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
13 108
🤔 Можно ли при вызове метода 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"])
Ставь 👍 и забирай 📚 Базу знаний13 108
🤔 Как переподнять исключение в блоке except?
Внутри блока except можно использовать ключевое слово raise без аргументов, чтобы повторно выбросить текущее перехваченное исключение. Это полезно, если нужно что-то логировать или изменить, но затем продолжить распространение ошибки.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
13 108
🤔 В чем отличие асинхронности, threading'га и мультипроцессинга?
Асинхронность, threading и мультипроцессинг - это три различных подхода к параллельному выполнению задач каждый из которых имеет свои особенности и применения:
🚩Асинхронность (Asynchronous)
Асинхронность предполагает выполнение задач без ожидания их завершения. Используется для работы с вводом-выводом (I/O), таким как чтение или запись файлов, сетевые запросы и т. д. В асинхронном коде задачи не блокируют основной поток выполнения, что позволяет эффективно использовать ресурсы процессора. Примеры асинхронных моделей включают в себя асинхронные функции и ключевые слова в Python (например,
async, await).
🚩Потоки (Threading)
Потоки позволяют выполнять несколько частей кода (потоков) параллельно в пределах одного процесса. Используются для выполнения многозадачных операций, которые могут быть распределены между несколькими ядрами процессора. Потоки могут выполняться параллельно, но могут также конкурировать за общие ресурсы, что может привести к проблемам синхронизации и безопасности. В некоторых языках, таких как Python, использование потоков ограничено из-за GIL (Global Interpreter Lock), что может снижать эффективность при использовании множества потоков для CPU-интенсивных задач.
🚩Мультипроцессинг (Multiprocessing)
Мультипроцессинг также позволяет выполнять несколько частей кода параллельно, но каждая часть выполняется в отдельном процессе. Каждый процесс имеет свое собственное пространство памяти, что делает мультипроцессинг более подходящим для многозадачных вычислений на многоядерных системах. Процессы обычно имеют больший накладные расходы по сравнению с потоками, поскольку каждый из них требует своих собственных ресурсов памяти и управления. Мультипроцессинг избегает проблемы GIL, что делает его более эффективным для CPU-интенсивных задач в Python и других языках.
Ставь 👍 и забирай 📚 Базу знаний13 108
🤔 Что такое тернарный оператор?
Это форма записи условного выражения в одну строку, которая позволяет выбрать значение в зависимости от условия. Он удобен, когда нужно быстро присвоить значение переменной на основе простого условия, не используя полноценную конструкцию if.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
13 108
🤔 Что такое хранитель (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`:
Восстанавливает предыдущее состояние редактора из истории.
Ставь 👍 и забирай 📚 Базу знаний13 108
🤔 Что делают методы tell и seek?
tell возвращает текущую позицию курсора в файле. seek позволяет установить позицию для следующей операции чтения или записи.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
13 108
⌨️ Как вырасти до Мидла или Синьора в два раза быстрее?
👨💻Просто хорошо работать работу не достаточно. Ты делаешь то, что нужно компании, а не то, что повысит твой грейд
Лучший способ вырасти — это персональный план развития от Senior-инженера из БигТеха.
Вот как все работает:
1️⃣ Мок-интервью 1-на-1: Час реалистичного собеса с Senior-инженером из Иннотеха, Сбера или другого бигтеха
2️⃣ Честный фидбек: созвонимся и расскажем твои точки роста, оценим грейд и потенциальный уровень зарплаты
3️⃣Персональный план развития: не просто «учите алгосы», а роадмап с конкретными темами, который приведет тебя к желаемому грейду или офферу
Мы в ШОРТКАТ провели уже почти 1000 таких мок-интервью и получили оценку 4.9/5, поэтому знаем о чем говорим.
📈 Да, и все это за 900 рублей. Почему так дешево?
Мы хотим, чтобы у каждого была возможность проверить в деле наш сервис, а потом уже доверить нам свое развитие.
Переходи в нашего бота и забирай свой мок за 900 рублей → @shortcut_py_bot
Реклама.
О рекламодателе.
13 108
🤔 Какие задачи хорошо параллелятся, какие плохо?
Параллельные вычисления — это выполнение нескольких задач одновременно, чтобы ускорить работу программы. Но не все задачи можно эффективно распараллелить.
🚩Независимые задачи (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())
Ставь 👍 и забирай 📚 Базу знаний13 108
🤔 Откуда берутся поля у access токена?
Поля access токена формируются на стороне сервера в момент выдачи. Они могут включать:
- идентификатор пользователя
- время истечения срока
- роли, права доступа
- информацию о клиентском приложении
Если используется JWT, поля помещаются в его полезную нагрузку (payload) в виде JSON-объекта и подписываются. Структура зависит от системы авторизации (OAuth2, OpenID Connect и др.).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
13 108
🤔 Как сгенерировать и применить миграцию?
В 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 # Откат до первой миграции
Ставь 👍 и забирай 📚 Базу знаний13 108
Где вести задачи и проекты? Конечно, в Битрикс24
Бесплатный онлайн-сервис для бизнеса и совместной работы.
— Удобный планировщик задач для всей команды с чек-листами и комментариями.
— Популярные проектные методики: канбан, скрам, диаграмма ганта.
— Видеозвонки в один клик из чата.
— Календарь и слоты для совместного планирования.
— Умный ИИ-помощник для постановки четких тз.
Полный комплект для эффективности вашей команды.
Ставьте первую задачу прямо сейчас.
Начать
#реклама 16+
task-24.bitrix24.ru
О рекламодателе
13 108
🤔 Как распознать NP-полную задачу?
Задача NP-полная, если:
- она принадлежит классу NP (решение проверяется за полиномиальное время);
- она неизвестна как решаемая за полиномиальное время, но если бы нашлось решение для одной NP-полной задачи — решились бы и остальные;
- она сводится к другим NP-полным задачам.
Примеры: задача коммивояжёра, рюкзака, раскраски графа.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
13 108
Методичка: как сделать онлайн-встречи эффективнее
Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие повестки и потерянные договоренности мешают нормально работать?
Команда МТС Линк собрала на 37 страницах полезные материалы, чек-листы и кейсы, которые помогают компаниям проводить эффективные совещания в онлайне с помощью сервиса Встречи.
Из методички узнаете:
- Как создать постоянную ссылку и подключаться на встречи в 2 клика,
- Как делать заметки и работать с файлами, не переживая за качество связи и безопасность данных.
- Как облегчает жизнь ИИ, который расшифровывает созвоны в текст и автоматически отправляет расшифровку на почту.
Еще в методичке описаны 7 способов оценки текущей эффективности ваших онлайн-встреч.
Получить гайд можно бесплатно на сайте.
Скачать
#реклама 16+
mts-link.ru
О рекламодателе
13 108
🤔 Какие типы данных относятся к структурам данных?
В 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)
Ставь 👍 и забирай 📚 Базу знаний13 108
Не дают оффер, хотя отвечаю на все вопросы ИДЕАЛЬНО❗️
Знакома такая ситуация:
Прошёл 4 технических собеседования, не ответил всего на 1 очень глубокий вопрос. Не понимаю, почему не дают оффер?Тут может сыграть множество факторов: 1️⃣- Удача: просто другому человеку по каким-то не зависящим от нас причинам повезло больше. Так бывает, ничего с этим не поделаешь, когда-то повезет и тебе. Кто-то чуть раньше закончил собеседование, чуть ближе живет к офису, чуть меньше просит и т.д. Не паримся и просто идем проходить собесы дальше, всё обязятельно придет. 2️⃣- Софт скилы: это уже НАМНОГО хуже 🤯 Запомни, разраб: каким бы скиловым в техническом плане ты ни был, тебя никогда не возьмут на работу, если ты не умеешь в софт скилы. © Джейсон Стетхем А что такое софт скилы❓ Это то, как ты общаешься с людьми, твоё поведение в спорных ситуациях, насколько с тобой комфортно общаться и умеешь ли ты слушать. Уже во всех компаниях внедрено правило: Если человек прошёл техническую часть НЕ идеально, но с отличными софт скилами - его возьмут НАМНОГО охотнее, чем человека с плохими софт скилами, который прошёл техническую часть идеально. Читай продолжение на канале ПитонЯра
13 108
Приглашаем на Yandex Neuro Scale
В этом году главная конференция Yandex Cloud объединит разработчиков, архитекторов, инженеров и IT-руководителей, чтобы обменяться опытом и увидеть, как работают технологии, которые меняют индустрии. 7 тематических треков, 50+ докладов, реальные бизнес-кейсы и нетворкинг!
✨Участие бесплатное, нужно только зарегистрироваться!✨
Зарегистрироваться
#реклама 16+
scale.yandex.cloud
О рекламодателе
Реклама на Яндексе
13 108
🤔 Что возвращает декоратор?
Обычно декоратор возвращает функцию или объект, который будет вызываться вместо оригинальной функции. Это может быть обёртка с дополнительной логикой или модифицированная функция.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
