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

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

الذهاب إلى القناة على Telegram

📈 نظرة تحليلية على قناة تيليجرام Python | Вопросы собесов

تُعد قناة Python | Вопросы собесов (@python_easy_ru) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 13 110 مشتركاً، محتلاً المرتبة 9 732 في فئة التكنولوجيات والتطبيقات والمرتبة 50 668 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 13 110 مشتركاً.

بحسب آخر البيانات بتاريخ 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

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 06 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

13 110
المشتركون
-524 ساعات
-147 أيام
-4830 أيام
أرشيف المشاركات
IT — не латте, смузи и гироскутер, а вызовы и амбиции VK показывает, чем занимаются её команды — от экспериментальных технологий до VK Fest. Переходите по ссылке: смотрите ролики, читайте про проекты и тут же откликайтесь на вакансию, которая по вкусу! Перейти на сайт #реклама 16+ vkteam.ru О рекламодателе

🤔 Срезы или слайсы в Python? Позволяют получить подмножество элементов из строки, списка и других последовательностей с помощью синтаксиса [start:stop:step]. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Зачем нужны схемы в БД? Схема (schema) в базе данных — это логическая группировка объектов (таблиц, индексов, представлений и т. д.) внутри одной БД. 🚩Что такое схема в БД? Схема — это контейнер для объектов БД (таблиц, индексов, процедур).
База данных (company_db)
 ├── Схема: public (по умолчанию)
 │   ├── Таблица: employees
 │   ├── Таблица: departments
 ├── Схема: hr
 │   ├── Таблица: employees
 │   ├── Таблица: salaries
 ├── Схема: sales
 │   ├── Таблица: customers
 │   ├── Таблица: orders
🚩Как создавать и использовать схемы? Создание схемы (CREATE SCHEMA)
CREATE SCHEMA hr;  -- Создаём схему "hr"
Создание таблицы внутри схемы
CREATE TABLE hr.employees (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    position VARCHAR(50)
);
Выбор схемы по умолчанию
SET search_path TO hr;
🚩Где полезны схемы? 🟠Разделение данных по модулям Если в БД хранятся разные области бизнеса (кадры, продажи, финансы), их можно разделить по схемам: - hr.employees, hr.salaries - sales.orders, sales.customers 🟠Разные версии одной БД Например, в PostgreSQL можно создать схему dev для тестов: - dev.users — тестовая версия таблицы - prod.users — продакшен-версия 🟠Безопасность и доступ пользователей Можно дать доступ к разным схемам разным пользователям:
GRANT USAGE ON SCHEMA hr TO hr_manager;
GRANT SELECT ON ALL TABLES IN SCHEMA hr TO hr_manager;
Ставь 👍 и забирай 📚 Базу знаний

Старт продаж квартир в Ялте с видом на гору Ай-ПетриХотите инвестировать в недвижимость Крыма с умом? Для вас есть прекрасная новость: Только 10 квартир на старте продаж в Ялте по ставке всего 4.5% на весь срок! Проводим консультацию по приобретению с помощью ипотеки! 👌Преимущества жилого комплекса: -Номинант премии Urban 2025 -Малоэтажный комплекс с приватной территорией -Виды на гору Ай-Петри и морскую акваторию -5 минут до моря -Рядом Воронцовский дворец -Отделка white-box с просторными лоджиями -Все дома уже сданы Рядом Севастопольское шоссе и удобный проезд к Южнобережному шоссе 💰Доход на сдаче квартиры от 2 млн. рублей в год - надёжная и солидная инвестиция! 👍Получите актуальные планировки и цены + инвестиционную консультацию! Получить предложение #реклама mrqz.me О рекламодателе

🤔 Что такое монолитная архитектура, её плюсы и минусы? Монолит — это единое приложение, где все компоненты находятся в одной системе. Плюсы: - проще начать разработку; - меньше накладных расходов; - отладка и деплой проще. Минусы: - сложнее масштабировать по частям; - одно изменение может повлиять на всё приложение; - трудно разделить работу между командами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как в питоне реализуется многопоточность. Какими модулями? Многопоточность в 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())
Ставь 👍 и забирай 📚 Базу знаний

Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля Дизайнер карточек для маркетплейсов — востребованная и доходная проф
Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰 Научись ей бесплатно! - Бесплатный доступ - Разбор ДЗ от наставника - Мощные кейсы в портфолио Узнать больше #реклама 16+ yudaevschool24.online О рекламодателе

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

🤔 Какие типы данных относятся к структурам данных? В 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)
Ставь 👍 и забирай 📚 Базу знаний

🤔 В чем отличие асинхронности, threading'га и мультипроцессинга? Асинхронность позволяет выполнять задачи без блокировки основного потока, используя событийный цикл и `async/await`, что делает её эффективной для операций ввода-вывода. Threading использует несколько потоков в одном процессе для выполнения задач параллельно, но все потоки делят одну память и могут сталкиваться с проблемами синхронизации. Мультипроцессинг создает несколько процессов, каждый из которых имеет собственную память и может выполнять задачи независимо, что позволяет использовать все ядра процессора. Асинхронность предпочтительнее для ввода-вывода, а потоки и процессы — для вычислительно затратных операций. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие ограничения есть у рекурсии в Python? Рекурсия — это мощный инструмент, но в Python она имеет ограничения, которые нужно учитывать при написании кода. 🟠Ограничение на глубину рекурсии (`sys.getrecursionlimit()`) В Python по умолчанию рекурсия ограничена 1000 вызовами, чтобы избежать переполнения стека.
import sys
print(sys.getrecursionlimit())  # 1000 (обычное значение)
Если превысить этот лимит, программа вызовет ошибку
def recursive():
    return recursive()

recursive()  # RecursionError: maximum recursion depth exceeded
🚩Как изменить лимит? Можно увеличить глубину рекурсии, но это небезопасно
sys.setrecursionlimit(2000)  # Увеличиваем до 2000
🟠Рекурсия требует много памяти Каждый рекурсивный вызов создаёт новый фрейм в стеке вызовов.
def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n - 1)

print(factorial(10000))  # Ошибка из-за переполнения стека
🟠Отсутствие оптимизации хвостовой рекурсии Другие языки (например, Lisp, JavaScript) автоматически оптимизируют хвостовую рекурсию (Tail Call Optimization, TCO). Python не делает этого, поэтому даже "идеальная" рекурсия всё равно переполняет стек.
def tail_recursive(n, acc=1):
    if n == 1:
        return acc
    return tail_recursive(n - 1, n * acc)

print(tail_recursive(1000))  # Всё равно вызовет RecursionError
🟠Рекурсия медленнее цикла Рекурсивный вызов требует больше накладных расходов (создание стек-фреймов), чем обычный for или while.
# Итеративный вариант (быстрее)
def factorial_iter(n):
    result = 1
    for i in range(1, n + 1):
        result *= i
    return result

# Рекурсивный вариант (медленнее)
def factorial_rec(n):
    if n == 1:
        return 1
    return n * factorial_rec(n - 1)
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что делает Python объектно-ориентированным? Всё в Python — объекты: числа, строки, функции, классы. Есть поддержка инкапсуляции, наследования, полиморфизма и создания собственных классов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Repost from easyoffer
База 1000+ реальных собеседований теперь встроена в easyoffer Смотрите, как другие кандидаты отвечают на вопросы, решают зада
База 1000+ реальных собеседований теперь встроена в easyoffer Смотрите, как другие кандидаты отвечают на вопросы, решают задачи и проходят этапы на реальных собеседованиях от топовых компаний. Подготовьтесь к своему собеседованию с двойной уверенностью. Напоминаем, что сегодня последний день Чёрной Пятницы 👉 Забрать PRO со скидкой 70%: https://easyoffer.ru/

🤔 Что быстрее python или c++? C++ быстрее Python, потому что: C++ — компилируемый язык, а Python — интерпретируемый. C++ работает ближе к "железу", а Python использует абстракции. C++ использует статическую типизацию, а Python динамическую (дополнительные проверки замедляют код). 🚩Разница в скорости выполнения Простой пример: сложение чисел в цикле Python (медленно)
import time

start = time.time()
s = 0
for i in range(10_000_000):
    s += i
end = time.time()

print("Python:", end - start, "сек")
Результат
Python: 0.8 сек
C++ (быстро)
#include <iostream>
#include <chrono>

int main() {
    auto start = std::chrono::high_resolution_clock::now();
    
    long long s = 0;
    for (int i = 0; i < 10000000; i++) {
        s += i;
    }

    auto end = std::chrono::high_resolution_clock::now();
    std::cout << "C++: " 
              << std::chrono::duration<double>(end - start).count() 
              << " сек" << std::endl;
}
Результат
C++: 0.05 сек
🚩3. Когда Python может быть быстрее? 🟠Если используются сторонние библиотеки (NumPy, Pandas, TensorFlow) Они написаны на C/C++ и работают очень быстро. Пример: numpy.sum(arr) быстрее, чем sum(list), потому что работает на C. 🟠Разработка в Python быстрее (меньше кода, проще отладка) Python код пишется в 2-5 раз быстрее, чем C++. Важно для стартапов и прототипов. 🟠Python лучше для обработки текста, веб-разработки, автоматизации Например, парсинг HTML, обработка логов, работа с API. 🚩Когда C++ лучше? 🟠 Высокая производительность (игры, 3D, движки) Игры, графика (Unreal Engine, Unity, CryEngine). Разработка операционных систем (Windows, Linux). 🟠Алгоритмы и математика (С++ быстрее Python в 10-100 раз) Быстрая обработка данных, алгоритмы (sorting, graph, machine learning). Например, если нужно перемножить матрицы размером 10 000 × 10 000, C++ справится в разы быстрее. 🟠Работа с железом (Embedded, драйверы, робототехника) Python слишком медленный для реального времени, а C++ используется в Arduino, автопилотах, микроконтроллерах. Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Что такое хешируемые типы данных? Это такие типы данных, которые имеют постоянное (неизменяемое) хеш-значение на протяжении всего времени их существования. Это означает, что их можно использовать в качестве ключей в словарях (dict) и элементов в множествах (set), так как они поддерживают вычисление хеша с помощью функции hash(). 🚩Как понять, что объект хешируемый? 🟠Объект должен быть неизменяемым если объект можно изменить после создания, его хеш тоже изменится, что нарушает работу структур данных (словари, множества). 🟠Должен реализовывать метод `__hash__()` который возвращает уникальный идентификатор объекта. 🚩Какие типы данных хешируемые? Числа (int, float, complex)
  print(hash(42))       # 42
  print(hash(3.14))     # 322818021289917443
  print(hash(1 + 2j))   # 8389048192121911274
Строки (str)
print(hash("hello"))  # Например, 5320385861927423548
Кортежи (tuple), если все их элементы тоже хешируемые:
print(hash((1, 2, 3)))  # 529344067295497451
Булевы значения (bool):
  print(hash(True))   # 1
  print(hash(False))  # 0
🚩Какие типы НЕ хешируемые? Списки (list)
hash([1, 2, 3])  # TypeError: unhashable type: 'list'
Множества (set)
hash({1, 2, 3})  # TypeError: unhashable type: 'set'
Словари (dict)
hash({"a": 1})  # TypeError: unhashable type: 'dict'
🚩Почему это важно? Хешируемые типы используются в словари (dict) и множества (set), так как они используют хеш-функцию для быстрого поиска данных.
my_dict = { (1, 2, 3): "tuple_key" }  # Работает, потому что кортеж неизменяемый
my_set = { 42, "hello", (1, 2) }      # Все элементы хешируемые
Ставь 👍 и забирай 📚 Базу знаний

🤔 Можно ли декорировать классы? Да, можно. Декоратор может изменить или вернуть новый класс, обёрнутый в дополнительную логику. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Repost from easyoffer
Черная пятница на easyoffer Скидка 70% на PRO до 29 ноября. 👉 https://easyoffer.ru/
Черная пятница на easyoffer Скидка 70% на PRO до 29 ноября. 👉 https://easyoffer.ru/

🤔 Для чего нужен счетчик ссылок Python? В Python счетчик ссылок (reference count) используется для управления памятью. Он показывает, сколько раз объект используется в программе. Когда счетчик ссылок падает до нуля, Python автоматически удаляет объект, освобождая память. 🚩Как работает счетчик ссылок? Python использует автоматическое управление памятью, основанное на подсчёте ссылок. Когда создаётся объект, Python хранит специальное число — количество ссылок на этот объект. Это число увеличивается, когда мы создаём новую ссылку на объект, и уменьшается, когда удаляем или перезаписываем переменную.
import sys

a = [1, 2, 3]  # Создаём список
print(sys.getrefcount(a))  # Выведет 2 (одна ссылка 'a' + вызов getrefcount)

b = a  # Новая ссылка на тот же объект
print(sys.getrefcount(a))  # Теперь 3 (a, b и сам getrefcount)

del a  # Удаляем одну ссылку
print(sys.getrefcount(b))  # Теперь 2

del b  # Удаляем последнюю ссылку, объект будет удалён из памяти
🚩Почему это важно? 🟠Эффективное управление памятью Python сам удаляет ненужные объекты, не давая памяти переполняться. 🟠Понимание утечек памяти Если объект имеет циклические ссылки (например, список ссылается сам на себя), Python не может освободить его сразу, поэтому дополнительно используется сборщик мусора (Garbage Collector, GC).
import gc

class Node:
    def __init__(self):
        self.ref = self  # Циклическая ссылка!

n = Node()
del n  # Обычный подсчёт ссылок не сработает, объект останется в памяти
gc.collect()  # Явный вызов сборщика мусора удалит его
Ставь 👍 и забирай 📚 Базу знаний