ar
Feedback

لا تقع ضحية للمخادعين! تيليمتريو يكتشف ويُميّز هذه القنوات 👉 إذا كنت تريد رؤية العلامة، اشترك 👈

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

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

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

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

إظهار المزيد

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

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

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

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

بحسب آخر البيانات بتاريخ 14 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -107، وفي آخر 24 ساعة بمقدار 0، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 6.11‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 4.23‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 772 مشاهدة. وخلال اليوم الأول يجمع عادةً 534 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 3.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل ставь, модуль, строка, docker, alice.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads”

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

12 637
المشتركون
لا توجد بيانات24 ساعات
-307 أيام
-10730 أيام
أرشيف المشاركات
Чувствуешь, что не хватает технических знаний для уверенности в работе? Кажется, что нужной информации слишком много, но она
Чувствуешь, что не хватает технических знаний для уверенности в работе? Кажется, что нужной информации слишком много, но она никак не складывается в целостную картину? 🤔 СТОП ❌ Хватит теряться в тоннах информации и сомневаться в своих навыках. Если тебе надоело бесконечно готовиться и заваливать технические собеседования, есть решение — канал Александра Нездемина практикующего системного аналитика с 14-летним опытом. В его канале ты найдешь структурированную информацию, разбор задач с реальных собеседований и всё необходимое для уверенного продвижения по карьерной лестнице.🔥 ➡️ Не упусти этот шанс! Подписывайся на канал и переходи в закреп, там уже ждут разборы задач из реального собеседования.👇🏻 https://t.me/+SnnVogPSmMc4NGVi 🖇 Настало время перестать теряться и начать уверенно двигаться вперед!

🤔 Что такое глубокая копия? Глубокая копия (deep copy) создаёт новый объект и рекурсивно копирует все вложенные объекты. Используется, чтобы избежать изменения оригинала при работе с вложенными структурами данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие есть методы у классов ? Классы могут содержать различные виды методов, которые определяют поведение объектов и взаимодействие с ними. 🟠Обычные методы (Instance Methods) Работают с экземплярами класса и могут изменять состояние объекта. Они принимают как первый аргумент self, который ссылается на экземпляр класса.
class MyClass:
    def __init__(self, value):
        self.value = value

    def increment(self):
        self.value += 1

# Использование
obj = MyClass(10)
obj.increment()
print(obj.value)  # Вывод: 11
🟠Методы класса (Class Methods) Работают с самим классом, а не с экземплярами. Они принимают как первый аргумент cls, который ссылается на класс. Методы класса обозначаются декоратором @classmethod.
class MyClass:
    count = 0

    def __init__(self):
        MyClass.count += 1

    @classmethod
    def get_count(cls):
        return cls.count

# Использование
obj1 = MyClass()
obj2 = MyClass()
print(MyClass.get_count())  # Вывод: 2
🟠Статические методы (Static Methods) Не зависят ни от экземпляра класса, ни от самого класса. Они не принимают self или cls в качестве первого аргумента. Статические методы обозначаются декоратором @staticmethod.
class MyClass:
    @staticmethod
    def greet(name):
        return f"Hello, {name}!"

# Использование
print(MyClass.greet("Alice"))  # Вывод: Hello, Alice!
🚩Специальные методы (Special Methods или Magic Methods) Специальные методы определяют поведение объектов при использовании встроенных функций и операций. Они включают такие методы, как init, str, repr, len, getitem, setitem, delitem, call, enter, exit, и многие другие. 🟠init Конструктор класса, вызываемый при создании нового экземпляра.
        class MyClass:
        def init(self, value):
            self.value = value

    obj = MyClass(10)
🟠str Определяет строковое представление объекта для функции str() и оператора print.
        class MyClass:
        def init(self, value):
            self.value = value

        def str(self):
            return f"MyClass with value: {self.value}"

    obj = MyClass(10)
    print(obj)  # Вывод: MyClass with value: 10
🟠__getitem__, __setitem__, __delitem__ Определяют поведение объекта при доступе к элементам по индексу (для коллекций).
    class MyList:
        def __init__(self, items):
            self.items = items

        def __getitem__(self, index):
            return self.items[index]

        def __setitem__(self, index, value):
            self.items[index] = value

        def __delitem__(self, index):
            del self.items[index]

    lst = MyList([1, 2, 3])
    print(lst[1])  # Вывод: 2
    lst[1] = 20
    print(lst[1])  # Вывод: 20
    del lst[1]
    print(lst.items)  # Вывод: [1, 3]
    
🟠__enter__, __exit__ Определяют поведение объекта в контексте оператора with.
    ```python
    class ManagedResource:
        def enter(self):
            print("Entering the context")
            return self

        def exit(self, exc_type, exc_value, traceback):
            print("Exiting the context")
            return False

    with ManagedResource():
        print("Inside the context")
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Расскажи о методах eq, ne, lt, le, qt, qe? Методы eq, ne, lt, le, gt, и ge являются специальными методами, которые позволяют определять, как объекты пользовательских классов будут сравниваться друг с другом. Эти методы обеспечивают перегрузку операторов сравнения, таких как ==, !=, <, <=, >, и >=. 🟠Метод eq Используется для перегрузки оператора равенства (==). Он вызывается, когда нужно проверить, равны ли два объекта.
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __eq__(self, other):
        if isinstance(other, Person):
            return self.name == other.name and self.age == other.age
        return False

# Использование
p1 = Person("Alice", 30)
p2 = Person("Alice", 30)
p3 = Person("Bob", 25)

print(p1 == p2)  # Вывод: True
print(p1 == p3)  # Вывод: False
🟠Метод name, age Используется для перегрузки оператора неравенства (!=). Он вызывается, когда нужно проверить, не равны ли два объекта.
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __ne__(self, other):
        if isinstance(other, Person):
            return self.name != other.name or self.age != other.age
        return True

# Использование
p1 = Person("Alice", 30)
p2 = Person("Alice", 30)
p3 = Person("Bob", 25)

print(p1 != p2)  # Вывод: False
print(p1 != p3)  # Вывод: True
🟠Метод age Используется для перегрузки оператора "меньше чем" (<). Он вызывается, когда нужно проверить, меньше ли один объект другого.
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __lt__(self, other):
        if isinstance(other, Person):
            return self.age < other.age
        return NotImplemented

# Использование
p1 = Person("Alice", 30)
p2 = Person("Bob", 25)

print(p1 < p2)  # Вывод: False
print(p2 < p1)  # Вывод: True
🟠Метод ass Используется для перегрузки оператора "меньше или равно" (<=). Он вызывается, когда нужно проверить, меньше ли или равен один объект другому.
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __le__(self, other):
        if isinstance(other, Person):
            return self.age <= other.age
        return NotImplemented

# Использование
p1 = Person("Alice", 30)
p2 = Person("Bob", 25)
p3 = Person("Charlie", 30)

print(p1 <= p2)  # Вывод: False
print(p2 <= p1)  # Вывод: True
print(p1 <= p3)  # Вывод: True
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое `kwargs`? Это способ передачи произвольного количества именованных аргументов. 1. Указывается как **kwargs в объявлении функции. 2. Аргументы передаются в виде словаря. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Расскажи о методе bool? Метод __bool__ является специальным методом, который позволяет определить, как объект будет оцениваться в логическом контексте. Этот метод должен возвращать булево значение (True или False), которое указывает на истинность или ложность объекта. 🚩Основное предназначение Используется для реализации логического поведения объектов при использовании встроенной функции bool() и в условиях (например, в инструкциях if и while). Если объект не имеет метода bool, Python вызывает метод len, и если len возвращает ноль, объект считается ложным.
class Box:
    def __init__(self, items):
        self.items = items

    def __bool__(self):
        return bool(self.items)

    def __repr__(self):
        return f"Box({self.items})"

# Использование
box1 = Box([1, 2, 3])
box2 = Box([])

print(bool(box1))  # Вывод: True
print(bool(box2))  # Вывод: False

if box1:
    print("box1 is not empty")  # Вывод: box1 is not empty

if not box2:
    print("box2 is empty")  # Вывод: box2 is empty
🚩Использование метода len для логического контекста Если метод bool не определён, Python использует метод len для определения логического значения объекта. Если метод len возвращает 0, объект считается ложным, в противном случае — истинным.
class Box:
    def __init__(self, items):
        self.items = items

    def __len__(self):
        return len(self.items)

    def __repr__(self):
        return f"Box({self.items})"

# Использование
box1 = Box([1, 2, 3])
box2 = Box([])

print(bool(box1))  # Вывод: True
print(bool(box2))  # Вывод: False

if box1:
    print("box1 is not empty")  # Вывод: box1 is not empty

if not box2:
    print("box2 is empty")  # Вывод: box2 is empty
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое `args`? Это сокращение для передачи произвольного количества позиционных аргументов в функцию. 1. Указывается как *args в объявлении функции. 2. Позволяет обрабатывать переменное количество аргументов в виде кортежа. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Расскажи о методах add , mul , sub , truediv? Методы add, mul, sub и truediv являются специальными методами (или "магическими методами"), которые позволяют объектам пользовательских классов взаимодействовать с операциями сложения, умножения, вычитания и деления соответственно. Эти методы обеспечивают удобную и интуитивно понятную интеграцию пользовательских классов с арифметическими операциями Python. 🟠Метод add Используется для реализации оператора сложения (+). Он вызывается, когда используется оператор + между двумя объектами.
class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

    def __repr__(self):
        return f"Vector({self.x}, {self.y})"

# Использование
v1 = Vector(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2
print(v3)  # Вывод: Vector(4, 6)
🟠Метод mul Используется для реализации оператора умножения (*). Он вызывается, когда используется оператор * между двумя объектами.
class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __mul__(self, scalar):
        return Vector(self.x * scalar, self.y * scalar)

    def __repr__(self):
        return f"Vector({self.x}, {self.y})"

# Использование
v = Vector(1, 2)
v2 = v * 3
print(v2)  # Вывод: Vector(3, 6)
🟠Метод sub Используется для реализации оператора вычитания (-). Он вызывается, когда используется оператор - между двумя объектами.
class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __sub__(self, other):
        return Vector(self.x - other.x, self.y - other.y)

    def __repr__(self):
        return f"Vector({self.x}, {self.y})"

# Использование
v1 = Vector(5, 7)
v2 = Vector(2, 3)
v3 = v1 - v2
print(v3)  # Вывод: Vector(3, 4)
🟠Метод truediv Используется для реализации оператора деления (/). Он вызывается, когда используется оператор / между двумя объектами.
class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __truediv__(self, scalar):
        return Vector(self.x / scalar, self.y / scalar)

    def __repr__(self):
        return f"Vector({self.x}, {self.y})"

# Использование
v = Vector(6, 8)
v2 = v / 2
print(v2)  # Вывод: Vector(3.0, 4.0)
Ставь 👍 и забирай 📚 Базу знаний

🧠 Machine Learning — авторский канал, где собрана вся база по ИИ и машинному обучению. Senior разработчик AI-алгоритмов и ав
+5
🧠 Machine Learning — авторский канал, где собрана вся база по ИИ и машинному обучению. Senior разработчик AI-алгоритмов и автономных агентов, разбирает гайды, редкую литературу и код топовых моделей машинного обучения и искусственного интеллекта. В 2025 году ИИ выйдет на совершенно новый уровень тот, кто не успеет за прогрессом - отстанет, а кто разберется - сорвет куш. Стоит подписаться: t.me/ai_machinelearning_big_data

🤔 Для чего подходят асинхронные операции? 1. Асинхронные операции подходят для задач с высокой задержкой: сетевые запросы, доступ к базам данных, ввод/вывод файлов. 2. Они повышают производительность за счёт параллельного выполнения задач, не блокируя основной поток. 3. Особенно полезны для приложений с большим числом одновременно обслуживаемых клиентов (например, веб-серверы). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Расскажи о методах len и abs ? Методы __len__ и abs являются специальными методами (или "магическими методами"), которые позволяют объектам классов взаимодействовать с встроенными функциями и операциями языка. Эти методы обеспечивают удобную и интуитивно понятную интеграцию пользовательских классов с стандартными операциями Python. 🚩Метод len Используется для определения длины объекта. Он должен возвращать количество элементов в объекте. Позволяет объектам взаимодействовать с встроенной функцией len().
class MyCollection:
    def __init__(self, items):
        self.items = items

    def __len__(self):
        return len(self.items)

# Использование
my_collection = MyCollection([1, 2, 3, 4, 5])
print(len(my_collection))  # Вывод: 5
🚩Метод abs Используется для вычисления абсолютного значения объекта. Он должен возвращать абсолютное значение объекта. Позволяет объектам взаимодействовать с встроенной функцией abs().
class MyNumber:
    def __init__(self, value):
        self.value = value

    def __abs__(self):
        return abs(self.value)

# Использование
my_number = MyNumber(-10)
print(abs(my_number))  # Вывод: 10
🚩Преимущества ➕Интеграция с встроенными функциями Методы len и abs позволяют пользовательским объектам взаимодействовать с встроенными функциями Python, что делает их использование более интуитивно понятным и удобным. ➕Полиморфизм Эти методы позволяют использовать объекты классов с функциями и операциями, предназначенными для стандартных типов данных. ➕Читаемость кода Использование стандартных функций len() и abs() для пользовательских объектов делает код более понятным и читабельным.
import math

class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __len__(self):
        return 2  # Вектор на плоскости всегда имеет два компонента

    def __abs__(self):
        return math.sqrt(self.x**2 + self.y**2)  # Длина (модуль) вектора

    def __repr__(self):
        return f"Vector({self.x}, {self.y})"

# Использование
v = Vector(3, 4)
print(len(v))  # Вывод: 2
print(abs(v))  # Вывод: 5.0
Ставь 👍 и забирай 📚 Базу знаний

🤔 В чём суть проекта Celery? Предоставляет систему для распределённого выполнения фоновых задач. 1. Работает с брокерами сообщений (Redis, RabbitMQ) для передачи задач. 2. Позволяет распределять обработку задач между несколькими рабочими процессами (workers). 3. Используется для автоматизации долгих или повторяющихся операций. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое деструктор класса ? Это специальный метод, который вызывается автоматически при уничтожении объекта класса. Используются для выполнения завершающих действий, таких как освобождение ресурсов, закрытие файлов, освобождение памяти и выполнение других операций очистки перед тем, как объект будет окончательно удалён из памяти. 🚩Деструкторы Определяется с помощью метода __del__. Этот метод вызывается, когда объект становится недоступным для использования и должен быть удалён сборщиком мусора.
class Person:
    def __init__(self, name):
        self.name = name
        print(f"{self.name} is created")

    def __del__(self):
        print(f"{self.name} is deleted")

# Создание экземпляра класса Person
person1 = Person("Alice")

# Удаление ссылки на объект
del person1

# Пример с автоматическим вызовом деструктора при завершении программы
person2 = Person("Bob")
🚩Основные функции 🟠Освобождение ресурсов Используется для освобождения ресурсов, таких как память, файловые дескрипторы, сетевые соединения и другие. 🟠Выполнение завершающих действий Может выполнять любые завершающие действия, которые необходимо выполнить перед удалением объекта. 🟠Поддержание корректности программы Помогает избежать утечек памяти и других ресурсов, обеспечивая корректное завершение работы программы. 🚩Особенности 🟠Неопределённое время вызова Сборщик мусора управляет временем жизни объектов, поэтому точное время вызова деструктора не всегда определено. 🟠Не вызывается для циклических ссылок Деструкторы не вызываются для объектов, участвующих в циклических ссылках. Для таких случаев рекомендуется использовать модуль weakref.
import weakref

class Node:
    def __init__(self, name):
        self.name = name
        self.next = None
        print(f"{self.name} is created")

    def __del__(self):
        print(f"{self.name} is deleted")

# Создание узлов
node1 = Node("Node1")
node2 = Node("Node2")

# Создание циклической ссылки
node1.next = node2
node2.next = node1

# Удаление узлов (циклическая ссылка предотвратит вызов деструкторов)
del node1
del node2

# Использование слабых ссылок для предотвращения утечек памяти
node1 = Node("Node1")
node2 = Node("Node2")
node1.next = weakref.ref(node2)
node2.next = weakref.ref(node1)

# Удаление узлов (слабые ссылки позволят вызвать деструкторы)
del node1
del node2
Ставь 👍 и забирай 📚 Базу знаний

🤔 Для чего можно использовать Celery? 1. Это инструмент для выполнения задач в фоновом режиме. 2. Используется для отправки уведомлений, обработки данных, построения отчётов и выполнения длительных операций вне основного потока. 3. Поддерживает планирование задач и распределённую обработку через брокеры, такие как RabbitMQ или Redis. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое конструктор класса ? Это специальный метод, который вызывается при создании нового экземпляра класса. В языках ООП конструкторы используются для инициализации объектов, устанавливая начальные значения атрибутов и выполняя любые необходимые действия при создании экземпляра. 🚩Конструктор Называется __init__. Этот метод вызывается автоматически при создании нового объекта класса и используется для инициализации атрибутов объекта.
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def display(self):
        print(f"Name: {self.name}, Age: {self.age}")

# Создание экземпляра класса Person
person1 = Person("Alice", 30)
person1.display()  # Вывод: Name: Alice, Age: 30

person2 = Person("Bob", 25)
person2.display()  # Вывод: Name: Bob, Age: 25
🚩Основные функции 🟠Инициализация атрибутов Инициализирует атрибуты объекта начальными значениями. 🟠Выполнение необходимой логики Может выполнять любые действия, необходимые при создании объекта (например, проверка входных данных). 🟠Управление ресурсами Может выполнять действия по управлению ресурсами, такие как открытие файлов или подключение к базе данных. 🚩Перегрузка Перегрузка конструктора не поддерживается напрямую, но можно использовать аргументы по умолчанию или конструкцию args и kwargs для имитации перегрузки.
#include <iostream>
using namespace std;

class Person {
public:
    string name;
    int age;

    // Конструктор по умолчанию
    Person() {
        name = "Unknown";
        age = 0;
    }

    // Конструктор с параметрами
    Person(string n, int a) {
        name = n;
        age = a;
    }

    void display() {
        cout << "Name: " << name << ", Age: " << age << endl;
    }
};

int main() {
    Person person1;
    person1.display();  // Вывод: Name: Unknown, Age: 0

    Person person2("Alice", 30);
    person2.display();  // Вывод: Name: Alice, Age: 30

    return 0;
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое async? Это ключевое слово, используемое для создания асинхронных функций, которые работают в неблокирующем режиме. 1. Асинхронные операции позволяют выполнять другие задачи, пока ожидается завершение медленных операций, таких как запросы к сети или доступ к файлам. 2. Async используется с await для управления асинхронным кодом. Ставь 👍 и забирай 📚 Базу знаний

🤔 Когда нельзя линеаризовать ? Это процесс определения порядка разрешения методов (Method Resolution Order, MRO), который используется для поиска методов и атрибутов в иерархии классов при множественном наследовании. 🚩Когда нельзя линеаризовать иерархию классов 🟠Несоответствие принципам C3-линеаризации Python использует алгоритм C3-линеаризации для определения MRO. Если иерархия классов не соответствует принципам C3-линеаризации, то линеаризация невозможна. 🟠Конфликтные зависимости Конфликты возникают, когда два или более родительских класса содержат методы или атрибуты с одинаковыми именами, и порядок их разрешения не может быть однозначно определён. 🟠Несовместимые суперклассы Если классы в иерархии имеют несовместимые или пересекающиеся зависимости, это может сделать линеаризацию невозможной.
class A:
    pass

class B(A):
    pass

class C(A):
    pass

class D(B, C):
    pass
🚩Как определяется Python использует C3-линеаризацию для определения порядка разрешения методов. Этот алгоритм соблюдает порядок наследования классов, учитывая при этом принципы монотонности и консистентности.
class A:
    def method(self):
        print("A")

class B(A):
    def method(self):
        print("B")

class C(A):
    def method(self):
        print("C")

class D(B, C):
    pass

d = D()
d.method()  # Вывод: B
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое HTTP и HTTPS? 1. HTTP (HyperText Transfer Protocol): протокол передачи данных между клиентом и сервером, передаёт данные в открытом виде. 2. HTTPS: расширение HTTP, использующее шифрование через SSL/TLS для защиты передаваемых данных. 3. HTTPS обеспечивает конфиденциальность, целостность данных и аутентификацию сервера. Ставь 👍 и забирай 📚 Базу знаний