Python | Вопросы собесов
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky
نمایش بیشتر📈 تحلیل کانال تلگرام Python | Вопросы собесов
کانال Python | Вопросы собесов (@python_easy_ru) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 13 105 مشترک است و جایگاه 9 737 را در دسته فناوری و برنامهها و رتبه 50 735 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 13 105 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 08 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -51 و در ۲۴ ساعت گذشته برابر 1 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 8.36% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 5.74% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 096 بازدید دریافت میکند. در اولین روز معمولاً 752 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 4 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند ставь, модуль, строка, docker, alice تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Cайт: easyoffer.ru
Реклама: @easyoffer_adv
ВП: @easyoffer_vp
Тесты t.me/+20tRfhrwPpM4NDQy
Задачи t.me/+nsl4meWmhfQwNDVi
Вакансии t.me/+cXGKkrOY2-w3ZTky”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 09 ژوئن, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
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() # Явный вызов сборщика мусора удалит его
Ставь 👍 и забирай 📚 Базу знанийclass (обычный способ)
Через type() (динамическое создание класса)
🚩Обычное создание класса через `class`
Это стандартный способ, который мы используем чаще всего.
class Person:
def __init__(self, name):
self.name = name
def say_hello(self):
return f"Привет, я {self.name}!"
p = Person("Алиса")
print(p.say_hello()) # Привет, я Алиса!
🚩Динамическое создание класса через `type()`
Функция type() позволяет создать класс "на лету".
Person = type("Person", (object,), {
"__init__": lambda self, name: setattr(self, "name", name),
"say_hello": lambda self: f"Привет, я {self.name}!"
})
p = Person("Боб")
print(p.say_hello()) # Привет, я Боб!
Ставь 👍 и забирай 📚 Базу знанийlist) можно разными способами в зависимости от задачи:
На части фиксированной длины
На N частей
По условию
🚩Разбить список на части фиксированного размера
Если нужно разделить список на подсписки длиной n, можно использовать list comprehension
def split_list(lst, size):
return [lst[i:i + size] for i in range(0, len(lst), size)]
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(split_list(data, 3))
Вывод
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
🚩Разбить список на N частей (равных или почти равных)
Если нужно разделить список на N частей, можно использовать numpy или itertools
import numpy as np
def split_into_n_parts(lst, n):
return np.array_split(lst, n)
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(split_into_n_parts(data, 4))
Вывод
[array([1, 2, 3]), array([4, 5]), array([6, 7]), array([8, 9])]
🚩Разбить список по условию
Если нужно разделить список по какому-то критерию, например, на чётные и нечётные числа
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even = [x for x in data if x % 2 == 0]
odd = [x for x in data if x % 2 != 0]
print(even, odd)
Вывод
[2, 4, 6, 8] [1, 3, 5, 7, 9]
Ставь 👍 и забирай 📚 Базу знаний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), другие запросы ждут бесконечно. Решение: короткие транзакции, автоматическое завершение.
🟠Снижение производительности
Чем больше блокировок, тем медленнее работа БД.
Ставь 👍 и забирай 📚 Базу знанийГорячие вакансии с привлекательными офферами для джуниор разработчиков, аналитиков, дизайнеров и QA-специалистов.👉 ПОДПИСАТЬСЯ 🔺СТАЖИРОВКИ
Стажировки для начинающих специалистов в IT независимо от возраста!👉 ПОДПИСАТЬСЯ 🔺Junojobs
Вакансии и стажировки для junior-разработчиков на удалёнке.👉 ПОДПИСАТЬСЯ 🔺БИГТЕХ
Junior вакансии и стажировки в крупнейших IT-компаниях мира: NVidia, Apple, T-банк, Яндекс, Google и т. д.👉 ПОДПИСАТЬСЯ 🔺Макс из < codereview />
Эксперименты про трудоустройство в IT, советы для быстрого поиска работы и офферы для джунов.👉 ПОДПИСАТЬСЯ
https://example.com/users, браузер отправляет:
GET /users HTTP/1.1 Host: example.comОтвет сервера
[
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"}
]
🚩Особенности GET-запроса
🟠Читаемый URL
параметры передаются в строке запроса (например, ?id=123).
🟠Безопасен
GET не изменяет данные на сервере.
🟠Можно кэшировать
браузеры и серверы могут сохранять результаты GET-запросов.
🟠Ограниченная длина URL
слишком длинные запросы могут не работать.
🟠Не подходит для конфиденциальных данных
передача пароля в URL (?password=123) небезопасна.
🚩GET-запрос с параметрами
Если нужно передать параметры, они добавляются в URL:
GET /search?q=python&page=2
В Python можно отправить GET-запрос с помощью библиотеки requests
import requests
response = requests.get("https://api.example.com/users", params={"id": 123})
print(response.json()) # Получаем ответ в JSON
Ставь 👍 и забирай 📚 Базу знаний__new__ для создания класса по шаблону Singleton, нужно следовать принципам, которые обеспечивают создание только одного экземпляра класса. Метод new отвечает за создание нового экземпляра класса, и его можно использовать для контроля этого процесса. Ниже приведен пример реализации Singleton с использованием метода new.
class Singleton:
_instance = None
def __new__(cls, *args, **kwargs):
if cls._instance is None:
cls._instance = super(Singleton, cls).__new__(cls, args, kwargs)
return cls._instance
def __init__(self, value):
if not hasattr(self, 'initialized'):
self.value = value
self.initialized = True
# Проверка работы Singleton
singleton1 = Singleton(10)
singleton2 = Singleton(20)
print(singleton1 is singleton2) # Выведет: True
print(singleton1.value) # Выведет: 10
print(singleton2.value) # Выведет: 10
🚩Объяснение кода
Атрибут _instance
cls._instance используется для хранения единственного экземпляра класса.
Метод
e):
🚩Метод init
Метод init выполняет инициализацию экземпляра.
Чтобы избежать повторной инициализации, проверяется наличие атрибута initialized. Если он не существует, происходит инициализация атрибутов и устанавливается initialized = True.
Ставь 👍 и забирай 📚 Базу знанийpip можно скачать определённую версию библиотеки с помощью оператора ==
pip install имя_библиотеки==версия
🚩Примеры
Установка конкретной версии
pip install numpy==1.21.0
Обновление до последней версии в пределах конкретного диапазона
pip install requests>=2.25,<3.0
Проверка доступных версий перед установкой
pip install имя_библиотеки==
Например
pip install pandas==
Установка из файла requirements.txt
Если нужно установить несколько библиотек с конкретными версиями, можно создать requirements.txt
numpy==1.21.0 requests>=2.25,<3.0 pandas==1.3.0И выполнить команду
pip install -r requirements.txt
Ставь 👍 и забирай 📚 Базу знаний
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
