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

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

Kanalga Telegram’da o‘tish

📈 Telegram kanali Python | Вопросы собесов analitikasi

Python | Вопросы собесов (@python_easy_ru) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 13 114 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 732-o'rinni va Rossiya mintaqasida 50 668-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 13 114 obunachiga ega bo‘ldi.

05 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -48 ga, so‘nggi 24 soatda esa -5 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 6.21% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 6.02% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 814 marta ko‘riladi; birinchi sutkada odatda 789 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 4 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent ставь, модуль, строка, docker, alice kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky

Yuqori yangilanish chastotasi (oxirgi ma’lumot 06 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

13 114
Obunachilar
-524 soatlar
-147 kunlar
-4830 kunlar
Postlar arxiv
🤔 Что такое dict comprehensions? dict comprehension (генератор словаря) — это способ быстро создать словарь с помощью компактного синтаксиса, похожего на list comprehension. 🚩Простейший пример `dict comprehension`
squares = {x: x**2 for x in range(1, 6)}
print(squares)
Вывод
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
🚩`dict comprehension` с условием (`if`) Оставляем только чётные числа:
squares = {x: x**2 for x in range(1, 11) if x % 2 == 0}
print(squares)
Вывод
{2: 4, 4: 16, 6: 36, 8: 64, 10: 100}
🚩Преобразование списка в словарь Создаём словарь из списка пар (name → длина слова)
names = ["Alice", "Bob", "Charlie"]
name_lengths = {name: len(name) for name in names}
print(name_lengths)
Вывод
{'Alice': 5, 'Bob': 3, 'Charlie': 7}
🚩Обратный словарь (ключи и значения меняются местами) Инвертируем словарь {ключ: значение} → {значение: ключ}
original = {"a": 1, "b": 2, "c": 3}
inverted = {v: k for k, v in original.items()}
print(inverted)
Вывод
{1: 'a', 2: 'b', 3: 'c'}
🚩Генерация словаря из `zip()` Объединяем два списка в словарь
keys = ["name", "age", "city"]
values = ["Alice", 25, "New York"]

person = {k: v for k, v in zip(keys, values)}
print(person)
Вывод
{'name': 'Alice', 'age': 25, 'city': 'New York'}
🚩`dict comprehension` с `if-else` Разделяем числа на чётные и нечётные
numbers = range(1, 6)
parity = {x: "чётное" if x % 2 == 0 else "нечётное" for x in numbers}
print(parity)
Вывод
{1: 'нечётное', 2: 'чётное', 3: 'нечётное', 4: 'чётное', 5: 'нечётное'}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Откуда берётся O(n) и почему это лучше, чем O(n²)? O(n) означает, что время выполнения пропорционально количеству элементов. O(n²) — значит, число операций растёт квадратично. Например, при 1 000 элементах: - O(n) ≈ 1 000 операций; - O(n²) ≈ 1 000 000 операций. Поэтому линейная сложность значительно быстрее при больших объёмах данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как работает функция filter()? 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]
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Как устроен протокол HTTP? HTTP (HyperText Transfer Protocol) — это протокол передачи данных, используемый для взаимодействия между клиентом (например, браузером) и сервером. Он является основой работы веба. Протокол устроен как текстовый, клиент-серверный и бесстатичный. 🚩Основные принципы HTTP 🟠Клиент-серверная архитектура Клиент (например, браузер) отправляет запросы серверу, сервер отвечает на них. 🟠Бесстатичность Каждый запрос независим от других. Сервер не сохраняет состояние клиента между запросами. Для сохранения состояния используются сессии, куки или токены. 🟠Текстовый протокол HTTP-запросы и ответы передаются в виде текста, что делает их легко читаемыми. 🚩Структура HTTP-запроса 🟠Стартовая строка Указывает метод, URL и версию протокола.
   GET /index.html HTTP/1.1
   
  

🟠Заголовки (headers)
Дополнительная информация о запросе.  
   
   Host: www.example.com
   User-Agent: Mozilla/5.0
   Accept: text/html
   
  

🟠Тело запроса (body)
Используется в некоторых методах (например, POST), чтобы передать данные на сервер.  
   
   name=John&age=30
   
  

🚩
Структура HTTP-ответа

🟠Стартовая строка
Указывает версию протокола, код состояния и текстовое описание.  
   
   HTTP/1.1 200 OK
   
  
  
🟠Заголовки (headers)
Дополнительные данные, например, тип содержимого.  
   
   Content-Type: text/html
   Content-Length: 348
   
  

🟠Тело ответа (body)
Содержит данные, которые сервер отправляет клиенту (например, HTML-страница).  
   
   <html>
       <body>Hello, world!</body>
   </html>
   
🚩Основные HTTP-методы 🟠GET Запрашивает данные с сервера. Данные передаются в URL. 🟠POST Отправляет данные на сервер (например, формы). 🟠PUT Обновляет данные на сервере или создаёт, если они отсутствуют. 🟠DELETE Удаляет данные на сервере. 🟠HEAD Аналог GET, но возвращает только заголовки без тела ответа. 🟠OPTIONS Возвращает информацию о поддерживаемых методах для ресурса. 🟠PATCH Частичное обновление ресурса. Ставь 👍 и забирай 📚 Базу знаний

Ой, это же Битрикс24 Бесплатный онлайн-сервис для совместной работы и бизнеса. ✨Вот как это работает: внутри одного сервиса в
Ой, это же Битрикс24 Бесплатный онлайн-сервис для совместной работы и бизнеса. ✨Вот как это работает: внутри одного сервиса все обсуждения, задачи, встречи, видеозвонки, продажи в CRM. Помогает во всех рабочих делах BitrixGPT. Команда оценит Узнать больше #реклама 16+ bitrix24.ru О рекламодателе

🤔 Какие операции можно производить над отображениями? Можно добавлять и удалять пары ключ-значение, перебирать их, объединять словари и проверять наличие ключа. Также словари поддерживают методы для получения ключей, значений и элементов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое пакет? Пакет (package) в Python — это набор модулей, объединённых в одну директорию. Главное отличие от обычной папки — наличие файла __init__.py, который делает директорию пакетом. 🚩Как создать пакет? Допустим, мы хотим создать пакет math_utils с модулями для работы с числами.
/my_project
    /math_utils  ← Это пакет
        __init__.py  ← Делаем директорию пакетом
        arithmetic.py  ← Модуль с функциями сложения/вычитания
        geometry.py  ← Модуль с функциями для работы с фигурами
    main.py  ← Основной файл программы
Код в arithmetic.py
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b
Код в geometry.py
def square_area(side):
    return side * side
Код в __init__.py
from .arithmetic import add, subtract
from .geometry import square_area
Теперь можно импортировать функции прямо из пакета:
from math_utils import add, square_area

print(add(2, 3))  # 5
print(square_area(4))  # 16
🚩Импорт модулей из пакета Импортируем весь пакет (с __init__.py)
from math_utils import add, square_area
Импортируем конкретный модуль
from math_utils import arithmetic
print(arithmetic.add(3, 5))
Импортируем конкретную функцию из модуля
from math_utils.arithmetic import add
print(add(3, 5))
🚩Как работают пакеты в Python? Python ищет пакеты по sys.path
import sys
print(sys.path)  # Пути, где Python ищет модули
Если Python не находит пакет, можно добавить путь вручную:
import sys
sys.path.append("/path/to/my_project")
Можно создавать вложенные пакеты
/my_project
    /math_utils
        __init__.py
        /advanced
            __init__.py
            calculus.py
Импорт:
from math_utils.advanced.calculus import derivative
Ставь 👍 и забирай 📚 Базу знаний

🤔 В чем разница между итератором и генератором? Итератор — это объект, который поддерживает метод `__iter__()` и `__next__()` и позволяет проходить по коллекции элементов. Генератор — это специальный вид итератора, который создается с помощью ключевого слова `yield` и позволяет лениво возвращать элементы по одному, сохраняя состояние между вызовами. Генераторы обычно используются для обработки больших данных, поскольку они не требуют загрузки всего набора данных в память. Итераторы, в свою очередь, могут быть созданы вручную с помощью классов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие есть операторы ограничений? Ограничения (constraints) в SQL используются для контроля целостности данных в таблицах. Они помогают предотвратить некорректные значения и обеспечить согласованность данных. 🚩`NOT NULL` (Запрещает `NULL`) Используется, если поле обязательно для заполнения
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL  -- Поле name обязательно
);
Нельзя вставить NULL в name
INSERT INTO users (id, name) VALUES (1, NULL);  -- Ошибка!
🚩`UNIQUE` (Гарантирует уникальность значений) Запрещает дубликаты в столбце
CREATE TABLE users (
    id INT PRIMARY KEY,
    email VARCHAR(100) UNIQUE  -- Email должен быть уникальным
);
Попытка вставить одинаковый email вызовет ошибку
INSERT INTO users (id, email) VALUES (1, 'test@example.com');
INSERT INTO users (id, email) VALUES (2, 'test@example.com');  -- Ошибка!
Создание UNIQUE на нескольких колонках
CREATE TABLE orders (
    user_id INT,
    product_id INT,
    UNIQUE (user_id, product_id)  -- Запрещает заказывать один товар дважды
);
🚩`PRIMARY KEY` (Главный ключ, уникальный идентификатор) Объединяет NOT NULL + UNIQUE и гарантирует, что строка уникальна.
CREATE TABLE users (
    id INT PRIMARY KEY,  -- Уникальный идентификатор
    name VARCHAR(50)
);
Можно создать PRIMARY KEY на нескольких колонках
CREATE TABLE enrollments (
    student_id INT,
    course_id INT,
    PRIMARY KEY (student_id, course_id)  -- Один студент не может записаться дважды на один курс
);
🚩`FOREIGN KEY` (Связь таблиц) Создаёт связь между таблицами и поддерживает ссылочную целостность. Есть таблица пользователей (users) и таблица заказов (orders), где user_id в orders должен ссылаться на id в users.
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

CREATE TABLE orders (
    id INT PRIMARY KEY,
    user_id INT,
    FOREIGN KEY (user_id) REFERENCES users(id)  -- Связь с таблицей users
);
Что делать при удалении пользователя?
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Что такое многопоточность/многопроцессорность? В программировании многопоточность и многопроцессорность помогают выполнять задачи параллельно, но работают по-разному. 🟠Многопоточность (Multithreading) Многопоточность позволяет одной программе запускать несколько потоков (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 начал работу
Поток 1 завершил работу
Поток 2 завершил работу
Все потоки завершены
🟠2. Многопроцессорность (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("Все процессы завершены")
Вывод (процессы действительно работают параллельно)
Процесс 1 начал работу
Процесс 2 начал работу
Процесс 1 завершил работу
Процесс 2 завершил работу
Все процессы завершены
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Встроенные функции Python В Python есть встроенные функции (built-in functions) — это функции, которые можно использовать без импорта. Они делают код проще и удобнее. Полный список встроенных функций можно посмотреть так:
print(dir(__builtins__))
🚩Основные категории встроенных функций Работа с числами
print(abs(-5))  # 5
print(round(3.14159, 2))  # 3.14
print(pow(2, 3))  # 8
print(min([3, 1, 4]))  # 1
Работа со строками
print(len("hello"))  # 5
print(str(123))  # '123'
print(ord('A'))  # 65
print(chr(65))  # 'A'
Работа с коллекциями (списки, кортежи, множества)
a = [3, 1, 2]
print(sorted(a))  # [1, 2, 3]

nums = [1, 2, 3]
names = ["Alice", "Bob", "Charlie"]
print(list(zip(nums, names)))  # [(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')]
Работа с логикой и проверками
print(bool(""))  # False
print(all([True, 1, "Hello"]))  # True
print(any([0, "", None, 5]))  # True (есть хотя бы один True)
Работа с функциями
nums = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, nums))
print(squared)  # [1, 4, 9, 16]

evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens)  # [2, 4]
Работа с файлами
with open("file.txt", "w") as f:
    f.write("Hello, world!")

name = input("Введите имя: ")
print("Привет,", name)
Работа с объектами и атрибутами
print(type(42))  # <class 'int'>
print(isinstance(42, int))  # True
print(dir([]))  # Методы списка
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Что делает git commit? Команда git commit используется для фиксации изменений в локальном репозитории Git. Она сохраняет текущие изменения в коде (добавленные, изменённые или удалённые файлы), которые были подготовлены с помощью команды git add. По сути, git commit создаёт "снимок" текущего состояния проекта, который можно использовать для отслеживания истории изменений, их анализа или отката к более ранним версиям. 🚩Как это работает? Когда вы работаете с Git, ваши изменения сначала попадают в рабочую директорию. После этого, чтобы зафиксировать их, вы добавляете их в индекс (staging area) с помощью команды git add. Только те изменения, которые находятся в индексе, будут включены в следующий коммит. Команда git commit фиксирует все изменения из staging area и сохраняет их как новую версию в истории проекта. 🚩Почему это нужно? 🟠История изменений Каждый коммит сохраняет подробную информацию о том, что было изменено, когда и почему. Это позволяет отслеживать развитие проекта. 🟠Версионность Можно вернуться к любой точке в истории и восстановить состояние проекта. 🟠Совместная работа В командной разработке коммиты позволяют другим разработчикам видеть изменения и их причины. 🟠Разделение задач Коммиты разбивают изменения на логические единицы, что упрощает их понимание.
# Шаг 1. Внести изменения в файл
echo "Hello, Git!" > example.txt

# Шаг 2. Добавить изменения в staging area
git add example.txt

# Шаг 3. Зафиксировать изменения
git commit -m "Добавил файл example.txt с приветственным текстом"
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Два способа создания класса В Python можно создать класс двумя основными способами: Через 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())  # Привет, я Боб!
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Что такое класс baseview? BaseView — это базовый класс представления (view) в Django, который предоставляет основу для создания представлений без жёсткой привязки к HTTP-методам (GET, POST и др.). Он является родительским классом для всех классов-представлений (CBV, Class-Based Views) в Django. 🚩Зачем нужен `BaseView`? Обеспечивает общую структуру для классов-представлений. Разделяет логику обработки запроса и рендеринг. Позволяет переопределять логику обработки запросов через dispatch(). Является родительским классом для View, TemplateView, ListView и других CBV. 🚩Как работает `BaseView`? Этот класс сам по себе не обрабатывает запросы. Он лишь задаёт каркас для представлений.
from django.views import View

class BaseView:
    def dispatch(self, request, *args, **kwargs):
        """Определяет, какой метод (GET, POST и т. д.) вызывать"""
        handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
        return handler(request, *args, **kwargs)

    def http_method_not_allowed(self, request, *args, **kwargs):
        """Обработчик для неподдерживаемых HTTP-методов"""
        return HttpResponseNotAllowed(self._allowed_methods())
🚩Использование `BaseView` Обычно мы используем View, который наследуется от BaseView.
from django.http import HttpResponse
from django.views import View

class MyView(View):
    def get(self, request):
        return HttpResponse("Это GET-запрос")

    def post(self, request):
        return HttpResponse("Это POST-запрос")
Ставь 👍 и забирай 📚 Базу знаний