Python | Вопросы собесов
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky
Show more📈 Analytical overview of Telegram channel Python | Вопросы собесов
Channel Python | Вопросы собесов (@python_easy_ru) in the Russian language segment is an active participant. Currently, the community unites 13 120 subscribers, ranking 9 739 in the Technologies & Applications category and 50 700 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 13 120 subscribers.
According to the latest data from 03 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -49 over the last 30 days and by 2 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 6.14%. Within the first 24 hours after publication, content typically collects 6.27% reactions from the total number of subscribers.
- Post reach: On average, each post receives 806 views. Within the first day, a publication typically gains 822 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 6.
- Thematic interests: Content is focused on key topics such as ставь, модуль, строка, docker, alice.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Cайт: easyoffer.ru
Реклама: @easyoffer_adv
ВП: @easyoffer_vp
Тесты t.me/+20tRfhrwPpM4NDQy
Задачи t.me/+nsl4meWmhfQwNDVi
Вакансии t.me/+cXGKkrOY2-w3ZTky”
Thanks to the high frequency of updates (latest data received on 04 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
async, await).
🚩Потоки (Threading)
Потоки позволяют выполнять несколько частей кода (потоков) параллельно в пределах одного процесса. Используются для выполнения многозадачных операций, которые могут быть распределены между несколькими ядрами процессора. Потоки могут выполняться параллельно, но могут также конкурировать за общие ресурсы, что может привести к проблемам синхронизации и безопасности. В некоторых языках, таких как Python, использование потоков ограничено из-за GIL (Global Interpreter Lock), что может снижать эффективность при использовании множества потоков для CPU-интенсивных задач.
🚩Мультипроцессинг (Multiprocessing)
Мультипроцессинг также позволяет выполнять несколько частей кода параллельно, но каждая часть выполняется в отдельном процессе. Каждый процесс имеет свое собственное пространство памяти, что делает мультипроцессинг более подходящим для многозадачных вычислений на многоядерных системах. Процессы обычно имеют больший накладные расходы по сравнению с потоками, поскольку каждый из них требует своих собственных ресурсов памяти и управления. Мультипроцессинг избегает проблемы GIL, что делает его более эффективным для CPU-интенсивных задач в Python и других языках.
Ставь 👍 и забирай 📚 Базу знанийimport socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("localhost", 8080)) # Привязываем сервер к адресу и порту
server.listen(1) # Ожидаем подключения одного клиента
print("Сервер запущен и ждёт подключения...")
conn, addr = server.accept() # Принимаем подключение
print(f"Подключен клиент: {addr}")
data = conn.recv(1024).decode() # Читаем данные от клиента
print(f"Клиент прислал: {data}")
conn.send("Привет от сервера!".encode()) # Отправляем ответ клиенту
conn.close()
Клиент (клиент.py)
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("localhost", 8080)) # Подключаемся к серверу
client.send("Привет, сервер!".encode()) # Отправляем сообщение
response = client.recv(1024).decode() # Получаем ответ от сервера
print(f"Ответ сервера: {response}")
client.close()
🚩Как это работает?
1⃣Запускаем сервер.py. Он ждёт подключения.
2⃣Запускаем клиент.py. Клиент подключается к серверу и отправляет сообщение.
3⃣Сервер получает сообщение, отвечает клиенту и закрывает соединение.
4⃣Клиент принимает ответ и завершает работу.
🚩Типы клиент-серверных архитектур
Одноуровневая – клиент общается напрямую с сервером.
Двухуровневая – классическая схема "клиент сервер" (например, браузер веб-сервер).
Трёхуровневая – добавляется база данных (например, клиент сервер БД).
Многоуровневая – сложные распределённые системы с несколькими серверами (например, микросервисы).
Ставь 👍 и забирай 📚 Базу знанийfilter() — это встроенная функция Python, которая отбирает элементы из последовательности по заданному условию.
filter(function, iterable)
🚩Как работает `filter()`?
Пример 1: Фильтрация чётных чисел
numbers = [1, 2, 3, 4, 5, 6]
# Оставляем только чётные числа
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # [2, 4, 6]
Пример 2: Фильтрация строк по длине
words = ["apple", "kiwi", "banana", "cherry"]
# Оставляем только слова длиной больше 5 символов
long_words = filter(lambda word: len(word) > 5, words)
print(list(long_words)) # ['banana', 'cherry']
Пример 3: Фильтрация None и пустых значений
values = [None, 0, "", "hello", 42, [], {}]
# Оставляем только "истинные" значения
filtered_values = filter(None, values)
print(list(filtered_values)) # ['hello', 42]
Пример 4: Использование filter() с def
def is_positive(n):
return n > 0
numbers = [-5, -2, 0, 3, 7, -1]
positive_numbers = filter(is_positive, numbers)
print(list(positive_numbers)) # [3, 7]
🚩Чем `filter()` лучше `for` + `if`?
Более короткий и читаемый код
# С `filter()`
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
# С `for` + `if`
even_numbers = [x for x in numbers if x % 2 == 0]
Ставь 👍 и забирай 📚 Базу знаний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) } # Все элементы хешируемые
Ставь 👍 и забирай 📚 Базу знаний
Available now! Telegram Research 2025 — the year's key insights 
