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

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

Open in Telegram

📈 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 114 subscribers, ranking 9 732 in the Technologies & Applications category and 50 668 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 13 114 subscribers.

According to the latest data from 05 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -48 over the last 30 days and by -5 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 6.21%. Within the first 24 hours after publication, content typically collects 6.02% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 814 views. Within the first day, a publication typically gains 789 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
  • 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 06 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.

13 114
Subscribers
-524 hours
-147 days
-4830 days
Posts Archive
🤔 Что такое клиент-серверная архитектура? Клиент-серверная архитектура – это модель взаимодействия устройств, где клиент запрашивает данные или услуги, а сервер их предоставляет. 🚩Как это работает? Клиент – это программа или устройство, которое отправляет запросы (например, браузер). Сервер – это программа или устройство, которое обрабатывает запросы и отправляет ответ (например, веб-сервер). Сервер (сервер.py)
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⃣Клиент принимает ответ и завершает работу. 🚩Типы клиент-серверных архитектур Одноуровневая – клиент общается напрямую с сервером. Двухуровневая – классическая схема "клиент сервер" (например, браузер веб-сервер). Трёхуровневая – добавляется база данных (например, клиент сервер БД). Многоуровневая – сложные распределённые системы с несколькими серверами (например, микросервисы). Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое UDP? UDP (User Datagram Protocol) — лёгкий и быстрый протокол без гарантии доставки: - Нет установления соединения. - Пакеты могут приходить в любом порядке или теряться. - Быстрее TCP, но ненадёжнее. Часто используется в видеозвонках, онлайн-играх, стриминге, где важна скорость, а не идеальная точность. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое GET? GET — это HTTP-метод, который используется для запроса данных с сервера. Когда ты открываешь веб-сайт или вводишь URL в браузере — это GET-запрос. Браузер запрашивает страницу у сервера, и сервер возвращает данные. 🚩Как работает GET-запрос? 1⃣Клиент (браузер, программа) отправляет GET-запрос на сервер. 2⃣Сервер обрабатывает запрос и возвращает ответ (HTML-страницу, JSON-данные, картинку и т. д.). 3⃣Данные отображаются пользователю. 🚩Пример GET-запроса Когда ты заходишь на 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
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Как происходит наследование моделей в Django? В Django можно наследовать модели, используя стандартное наследование классов. Это помогает повторно использовать код, организовывать данные и добавлять общие поля в несколько моделей. Django поддерживает три основных типа наследования: 🟠Абстрактные модели Абстрактные модели используются, когда нужно создать базовый класс с полями и методами, которые должны быть унаследованы, но сам класс не должен создавать таблицу в базе данных. Создается базовый класс с abstract = True в Meta. Дочерние классы наследуют его поля и методы, но не его саму в виде отдельной таблицы.
from django.db import models

class BaseModel(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True  # Указывает, что это абстрактная модель

class Post(BaseModel):
    title = models.CharField(max_length=255)
    content = models.TextField()

class Comment(BaseModel):
    text = models.TextField()
🟠Многоуровневое (конкретное) наследование Этот тип наследования создаёт отдельные таблицы для каждой модели. Используется, когда дочерний класс должен представлять отдельную сущность, но при этом иметь доступ к полям родительского класса. Django создаёт отдельные таблицы в БД для родительской и дочерней модели. Дочерняя модель автоматически получает OneToOneField на родительскую.
class Person(models.Model):
    name = models.CharField(max_length=255)

class Employee(Person):  # Отдельная таблица employee
    salary = models.DecimalField(max_digits=10, decimal_places=2)
🟠Прокси-модели (Proxy Models) Используются, когда нужно изменить поведение модели без изменения структуры базы данных. Прокси-модель наследует поля родительской модели. В Meta указывается proxy = True. Можно переопределять методы, добавлять новые, но не менять поля.
class Person(models.Model):
    name = models.CharField(max_length=255)

class Manager(Person):
    class Meta:
        proxy = True  # Указываем, что это прокси-модель

    def get_uppercase_name(self):
        return self.name.upper()
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что знаешь про singleton? Singleton — это паттерн проектирования, который ограничивает инстанцирование класса одним объектом. В Python его можно реализовать с помощью модуля или класса с использованием приватного конструктора и метода класса для доступа к экземпляру. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие есть высокоуровневые языки программирования? Предоставляют более высокую степень абстракции от аппаратного обеспечения компьютера, чем низкоуровневые языки. Они ориентированы на удобство программирования, упрощение разработки, читаемость и поддержку кода. Эти языки скрывают детали работы с памятью и процессором, позволяя программистам сосредоточиться на логике приложения. 🚩Основные высокоуровневые языки программирования: 🟠Python Веб-разработка, анализ данных, научные исследования, искусственный интеллект, автоматизация.
def greet(name):
    return f"Hello, {name}!"

print(greet("World"))     
🟠Java Разработка корпоративного ПО, веб-приложений, мобильных приложений (Android), больших распределенных систем.
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
   }
}
     
🟠C# Разработка настольных приложений, веб-приложений, игр (с использованием Unity), облачных сервисов.
using System;

class Program {
    static void Main() {
        Console.WriteLine("Hello, World!");
    }
}     
🟠JavaScript Веб-разработка, создание интерактивных пользовательских интерфейсов, серверные приложения, мобильные приложения (с использованием фреймворков, таких как React Native).
function greet(name) {
    return `Hello, ${name}!`;
}

console.log(greet("World"));     
🟠Ruby Веб-разработка, скрипты автоматизации, создание прототипов.
def greet(name)
  "Hello, #{name}!"
end

puts greet("World")     
🟠PHP Веб-разработка, серверные приложения, управление контентом.
<?php
function greet($name) {
    return "Hello, $name!";
}

echo greet("World");
?>     
🟠Swift Разработка мобильных и настольных приложений для экосистемы Apple.
func greet(name: String) -> String {
    return "Hello, \(name)!"
}

print(greet(name: "World"))     
🟠Kotlin Разработка Android-приложений, серверных приложений, веб-приложений.
fun greet(name: String): String {
    return "Hello, $name!"
}

fun main() {
    println(greet("World"))
}     
🟠Go (Golang) Разработка серверных приложений, облачных сервисов, микросервисов.
package main
import "fmt"

func main() {
   fmt.Println("Hello, World!")
}     
🟠Rust Системное программирование, разработка высокопроизводительных приложений, безопасное многопоточность.
fn main() {
    println!("Hello, World!");
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как открывается WebSocket? Соединение начинается с HTTP-запроса, который просит сервер перейти на протокол WebSocket. Если сервер согласен, он отвечает подтверждением, после чего создаётся постоянный канал связи, через который обе стороны могут отправлять и получать данные без повторной авторизации. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что в python не является объектом? В Python практически всё является объектом: числа, строки, функции, классы, модули и даже сам интерпретатор Python рассматривает их как объекты. Однако есть несколько вещей, которые объектами не являются: 🟠Операторы и синтаксические конструкции Операторы (+, -, *, and, or, not и т. д.) сами по себе не являются объектами. Они — часть синтаксиса языка и не имеют представления в виде объектов в памяти.
   a = 10 + 5  # Оператор "+" выполняет сложение, но сам по себе не объект
   print(type(+))  # Ошибка: нельзя получить тип оператора
🟠Ключевые слова (keywords) Встроенные ключевые слова Python (if, else, while, for, def, class, return и т. д.) не являются объектами. Они зарезервированы интерпретатором и используются для управления потоком выполнения кода.
   print(type(if))  # Ошибка: ключевое слово не является объектом
🟠Идентификаторы переменных Хотя переменные ссылаются на объекты, сами идентификаторы (имена переменных) — это просто ссылки, а не объекты.
   x = 42  # x — это имя, а не объект
   print(type(x))  # Это целое число, но само имя "x" объектом не является
🟠Аннотации типов во время компиляции Аннотации типов в Python, такие как list[str], не создают объекты во время компиляции кода. Они интерпретируются только на уровне анализа типов.
   def func(x: int) -> str:
       return str(x)
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Какие есть коды ошибок HTTP? В HTTP коды состояния указывают, как сервер обработал запрос. Они делятся на 5 категорий: 1xx (Информационные – запрос принят, продолжаем. 2xx (Успешные) – всё хорошо. 3xx (Перенаправления) – запрашиваемый ресурс перемещён. 4xx (Ошибки клиента) – клиент отправил неправильный запрос. 5xx (Ошибки сервера) – сервер не смог обработать запрос. 🚩Как исправить ошибки HTTP? 4xx: 400: Проверить формат запроса. 401: Убедиться, что пользователь авторизован. 403: Проверить права доступа. 404: Убедиться, что URL правильный. 5xx: 500: Проверить код сервера (ошибки в логах). 502/504: Проверить настройки Nginx/Proxy. 503: Сервер перегружен → добавить балансировку нагрузки. Ставь 👍 и забирай 📚 Базу знаний

🤔 Чем отличается re.match от re.search? - re.match() проверяет только начало строки на соответствие шаблону. Если начало не совпадает — возвращает None. - re.search() ищет соответствие в любом месте строки и возвращает первое совпадение. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Почему плохо хранить данные SQL в Docker контейнере? Хранение данных базы данных (SQL) внутри Docker-контейнера не рекомендуется, потому что контейнеры являются временными и одноразовыми. При удалении или пересоздании контейнера все данные внутри него теряются. 🚩Данные удаляются при удалении контейнера Контейнеры в Docker спроектированы так, чтобы их можно было легко пересоздавать. Если удалить контейнер (docker rm), все данные, хранящиеся внутри него, исчезнут навсегда.
docker run --name mydb -e MYSQL_ROOT_PASSWORD=secret -d mysql
docker stop mydb
docker rm mydb  # Удаляем контейнер – все данные пропали!
🚩Проблемы с обновлением и масштабированием Если база данных хранится внутри контейнера, обновить версию MySQL/PostgreSQL будет сложно. При пересоздании контейнера все данные потеряются, и их придется восстанавливать из резервной копии. 🚩Низкая производительность I/O Хранение данных внутри контейнера может снизить скорость работы базы, потому что Docker использует копию на запись (Copy-on-Write, CoW). Решение — использовать прямые тома (volumes) или монтировать каталог хоста.
docker run --name mydb -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=secret -d mysql
🚩Проблемы с резервным копированием Если база находится внутри контейнера, то сделать бэкап или восстановить данные сложно. Лучшее решение: использовать volumes + делать бэкапы через mysqldump или pg_dump.
docker exec mydb mysqldump -u root -psecret mydatabase > backup.sql
Ставь 👍 и забирай 📚 Базу знаний

🤔 Виды форматирования строк? – Через оператор % (устаревший стиль). – Метод .format(). – f-строки (f"{переменная}"). – Конкатенация (+), если речь не о форматировании, а о сложении. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое git stash? git stash — это команда в Git, которая сохраняет незакоммиченные изменения во временное хранилище (stash) и очищает рабочую директорию. 🚩Когда это полезно? Нужно переключиться на другую ветку, но есть незаконченные изменения. Хочешь сохранить текущую работу, но не коммитить её. Нужно экспериментировать, но без риска потерять код. 🚩Как использовать `git stash`? Сохранить изменения в stash
git stash
Посмотреть список сохранённых изменений
git stash list
Выведет список всех stash-ов
stash@{0}: WIP on main: 1234567 Добавил новую фичу
stash@{1}: WIP on dev: 89abcde Исправил баг
Восстановить сохранённые изменения
git stash pop  # Восстановит изменения и удалит stash
ИЛИ
git stash apply  # Восстановит, но stash останется в списке
Удалить stash после применения
git stash drop stash@{0}  # Удалит конкретный stash
git stash clear  # Удалит все stash'и
🚩Пример использования Сценарий - Ты работаешь в ветке main, но нужно срочно переключиться на dev. - У тебя есть изменения, которые ты не хочешь коммитить. Решение
git stash          # Сохраняем изменения
git checkout dev   # Переключаемся на другую ветку
# Делаем нужную работу...
git checkout main  # Возвращаемся в основную ветку
git stash pop      # Восстанавливаем изменения
Ставь 👍 и забирай 📚 Базу знаний

👩‍💻 Стажировки и вакансии для Python разработчиков. - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR
👩‍💻 Стажировки и вакансии для Python разработчиков. - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR в Telegram 👉 @jobs_python Больше тут: 🤖 ML & DS 👩‍💻 DevOps 👨‍✈️ ИБ & OSINT 👣 Go 👩‍💻 Mobile 👩‍💻 C# 👩‍💻 Node.js 👩‍💻 Python 🔎 QA 👩‍💻 Java 👩‍💻 UX/UI 👩‍💻 Frontend 🖼️ PHP 📋 Analyst 💼 1C 🖥 SQL 👩‍💻 IT HR Пока другие листают джоб-сайты — ты уже пишешь HR в Telegram.

🤔 Как посмотреть количество доступной ОЗУ на Linux? Можно использовать системные утилиты, которые выводят сведения об объёме оперативной памяти, её использовании и свободном объёме. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Cловари {dict}? Словарь (dict) — это структура данных, которая хранит пары "ключ → значение". 🟠Создание словаря Через {} (фигурные скобки)
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
Изменение значения
my_dict["age"] = 26  # Меняем возраст
del — удаление по ключу
del my_dict["city"]
Перебор ключей (for key in dict)
for key in my_dict:
    print(key, my_dict[key])
Проверка наличия ключа
if "name" in my_dict:
    print("Ключ существует!")
🟠Генерация словарей (Dictionary Comprehension) Создадим словарь квадратов чисел
squares = {x: x**2 for x in range(1, 6)}
print(squares)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
🟠Ключи должны быть хешируемыми (неизменяемыми) Нельзя использовать list как ключ!
my_dict[[1, 2, 3]] = "Ошибка"  # TypeError: unhashable type: 'list'
Можно использовать tuple, int, str, frozenset
my_dict[(1, 2, 3)] = "OK"
Ставь 👍 и забирай 📚 Базу знаний

🤔 Какая в Python типизация, статическая или динамичная? Python использует динамическую типизацию. 1. Тип переменной определяется во время выполнения, а не во время компиляции. 2. Это позволяет переменной менять тип в процессе выполнения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как разбить список? Разбить список (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]
Ставь 👍 и забирай 📚 Базу знаний