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 110 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 110 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 110
Obunachilar
-524 soatlar
-147 kunlar
-4830 kunlar
Postlar arxiv
👩‍💻 Стажировки и вакансии для Python разработчиков. - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR
👩‍💻 Стажировки и вакансии для Python разработчиков. - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR в Telegram 👉 @jobs_python Пока другие листают джоб-сайты — ты уже пишешь HR в Telegram.

🤔 Какие магические методы и для чего используются? Магические методы (например, __init__, __str__, __len__, __add__) используются для определения поведения объектов в специфичных ситуациях, таких как инициализация, строковое представление, арифметические операции или работа с коллекциями. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как можно оптимизировать хвостовую рекурсию в Python? Хвостовая рекурсия (tail recursion) — это особый вид рекурсии, когда рекурсивный вызов является последней операцией в функции. В языках, поддерживающих оптимизацию хвостовой рекурсии (TCO – Tail Call Optimization), такие вызовы не создают новый стек вызовов, а переиспользуют текущий, что предотвращает переполнение стека. Но в Python хвостовая рекурсия НЕ оптимизируется из-за особенностей интерпретатора (Python хранит полную историю вызовов для отладки). 🚩Способы оптимизации хвостовой рекурсии в Python 🟠Использование явного стека вместо рекурсии (итерация) Лучший способ избежать проблем с глубокой рекурсией — заменить её циклом.
def factorial(n, acc=1):
    if n == 0:
        return acc
    return factorial(n - 1, acc * n)  # Хвостовая рекурсия (но Python не оптимизирует!)
Решение: заменить на цикл (итеративный подход)
def factorial_iter(n):
    acc = 1
    while n > 0:
        acc *= n
        n -= 1
    return acc

print(factorial_iter(10000))  # Работает без ошибок
🟠Использование `sys.setrecursionlimit()` (не рекомендуется) Python имеет ограничение на глубину рекурсии (обычно около 1000). Можно его увеличить
import sys
sys.setrecursionlimit(20000)  # Увеличение лимита
🟠Использование `functools.lru_cache()` (мемоизация) Если рекурсивная функция пересчитывает одни и те же значения, можно кешировать результаты.
from functools import lru_cache

@lru_cache(None)  # Кеширует все вызовы функции
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n - 1) + fibonacci(n - 2)

print(fibonacci(100))  # Работает быстро, без переполнения стека
🟠Использование `stack` вместо рекурсии (эмуляция стека) Если алгоритм требует рекурсии, но стек ограничен, можно использовать список как стек.
def factorial_stack(n):
    stack = [(n, 1)]
    while stack:
        n, acc = stack.pop()
        if n == 0:
            return acc
        stack.append((n - 1, acc * n))

print(factorial_stack(10000))  # Работает без ошибок
Ставь 👍 и забирай 📚 Базу знаний

🤔 Для чего нужен модуль operator? Модуль operator предоставляет функции, которые соответствуют стандартным операторам Python (арифметическим, логическим, сравнениям и др.). Это удобно для использования в функциональном программировании — например, когда оператор нужно передать как функцию (в map, sorted, reduce и т.д.). Также он делает код более читаемым и структурированным в случае сложной логики. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

📺 База 1000+ реальных собеседований На программиста, тестировщика, аналитика, проджекта и другие IT профы. Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д. 🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!

🤔 Чем отличаются методы сокрытия? Методы и атрибуты класса могут быть скрыты от внешнего использования с помощью различных уровней сокрытия. Сокрытие реализуется с помощью соглашений об именах, а не с помощью жесткой инкапсуляции, как в некоторых других языках программирования. Основные уровни сокрытия включают публичные, защищенные и приватные методы и атрибуты. 🚩Публичные методы и атрибуты Доступны из любого места, как внутри класса, так и за его пределами. Их имена не начинаются с подчеркиваний.
class MyClass:
    def __init__(self):
        self.public_attribute = "I am public"
    
    def public_method(self):
        return "This is a public method"

obj = MyClass()
print(obj.public_attribute)  # Вывод: I am public
print(obj.public_method())   # Вывод: This is a public method
🚩Защищенные методы и атрибуты Не предназначены для использования за пределами класса и его подклассов. Они обозначаются одним подчеркиванием в начале имени. Это всего лишь соглашение, сигнализирующее другим разработчикам, что такие методы и атрибуты не следует использовать вне класса или его подклассов.
class MyClass:
    def __init__(self):
        self._protected_attribute = "I am protected"
    
    def _protected_method(self):
        return "This is a protected method"

class SubClass(MyClass):
    def access_protected(self):
        return self._protected_method()

obj = MyClass()
sub_obj = SubClass()

print(sub_obj.access_protected())  # Вывод: This is a protected method
🚩Приватные методы и атрибуты Скрыты от внешнего доступа и доступны только внутри самого класса. Они обозначаются двумя подчеркиваниями в начале имени. Python реализует это с помощью механизма именования, который изменяет имя метода или атрибута, добавляя к нему имя класса, чтобы затруднить доступ извне.
class MyClass:
    def __init__(self):
        self.__private_attribute = "I am private"
    
    def __private_method(self):
        return "This is a private method"
    
    def access_private(self):
        return self.__private_method()

obj = MyClass()

try:
    print(obj.__private_attribute)
except AttributeError as e:
    print(e)  # Вывод: 'MyClass' object has no attribute '__private_attribute'

try:
    print(obj.__private_method())
except AttributeError as e:
    print(e)  # Вывод: 'MyClass' object has no attribute '__private_method'

# Доступ к приватным методам через публичный метод класса
print(obj.access_private())  # Вывод: This is a private method
Ставь 👍 и забирай 📚 Базу знаний

В Чёрную пятницу — 1 ТБ в Облаке Mail от 99 ₽ в месяц Подключите подписку Mail Space на год, а платите как за 9 месяцев. С подпиской вы получите бесконечное место в Облаке Mail для ваших фото и видео с телефона и 1 ТБ для всего остального — всего от 99 ₽ в месяц. Перейти на сайт #реклама 16+ cloud.mail.ru О рекламодателе

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

🤔 Для чего могут применять конструкцию try finally без except? Конструкция try...finally используется в случаях, когда нужно гарантировать выполнение кода в finally, независимо от того, возникло исключение или нет. 🟠Закрытие файла Если файл открыт, его нужно закрыть в любом случае, даже если в процессе работы произойдёт ошибка.
try:
    file = open("data.txt", "r")
    data = file.read()
finally:
    print("Закрываем файл...")
    file.close()  # Файл закроется даже при ошибке
🟠Освобождение ресурсов (например, соединение с базой данных) Если программа работает с базой данных, соединение нужно закрыть, даже если произошла ошибка.
import sqlite3

conn = sqlite3.connect("database.db")

try:
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")  # Ошибка, если таблицы нет
finally:
    print("Закрываем соединение с БД...")
    conn.close()  # Закроет соединение в любом случае
🟠Разблокировка ресурсов (например, файл или поток) Допустим, есть блокировка файла, которую нужно снять в любом случае.
import threading

lock = threading.Lock()

try:
    lock.acquire()
    print("Ресурс заблокирован")
    # Код, который использует ресурс
finally:
    print("Разблокируем ресурс")
    lock.release()  # Освободит блокировку даже при ошибке
Пример 4: Остановка таймера, даже если произошла ошибка
import time

try:
    start_time = time.time()
    x = 1 / 0  # Ошибка деления на ноль
finally:
    elapsed_time = time.time() - start_time
    print(f"Программа выполнялась {elapsed_time:.2f} секунд")
Ставь 👍 и забирай 📚 Базу знаний

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

🤔 Как в Django работает система аутентификации? В Django встроена мощная система аутентификации, которая отвечает за идентификацию пользователей, управление учетными записями и контроль доступа к различным частям приложения. Она включает регистрацию, вход, выход, проверку прав пользователей и работу с сессиями. 🟠Как работает процесс аутентификации? Аутентификация в Django основана на модели пользователя (User) и механизме сессий. Когда пользователь входит в систему, Django проверяет его учетные данные и создает сессию, сохраняя в ней идентификатор пользователя. Процесс можно разделить на несколько шагов: Пользователь вводит логин и пароль. Django проверяет данные через аутентификационный бэкенд. Если данные верны, Django создает сессию. При каждом запросе Django проверяет, авторизован ли пользователь. 🚩Основные компоненты системы аутентификации 🟠Модель пользователя (`User`) Django предоставляет встроенную модель пользователя django.contrib.auth.models.User. Она содержит: username, email, password is_staff, is_superuser, is_active date_joined, last_login
from django.contrib.auth.models import User

# Создание пользователя
user = User.objects.create_user(username="admin", password="12345")
user.email = "admin@example.com"
user.save()

# Проверка пароля
print(user.check_password("12345"))  # True
🟠Аутентификация (`authenticate`) Django использует функцию authenticate() для проверки учетных данных.
from django.contrib.auth import authenticate

user = authenticate(username="admin", password="12345")
if user is not None:
    print("Успешный вход!")
else:
    print("Ошибка аутентификации!")
🟠Вход и выход (`login` / `logout`) После успешной аутентификации пользователя можно "впустить" с помощью login().
from django.contrib.auth import login, logout

def user_login(request):
    user = authenticate(username="admin", password="12345")
    if user:
        login(request, user)  # Создает сессию
        return "Пользователь вошел!"
    return "Ошибка входа"

def user_logout(request):
    logout(request)  # Удаляет сессию
    return "Пользователь вышел!"
🟠Проверка аутентификации Во вьюхах можно проверить, авторизован ли пользователь
if request.user.is_authenticated:
    print("Пользователь залогинен:", request.user.username)
else:
    print("Гость")
Для защиты маршрутов можно использовать декоратор @login_required:
from django.contrib.auth.decorators import login_required

@login_required
def profile(request):
    return "Это страница профиля!"
🚩Настройка аутентификации 🟠Настройки в `settings.py` Django по умолчанию использует django.contrib.auth.backends.ModelBackend для аутентификации через базу данных. Можно добавить кастомные бэкенды:
AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',  # Обычная аутентификация
]
🟠Изменение модели пользователя Если стандартной модели User недостаточно, можно создать кастомную модель
from django.contrib.auth.models import AbstractUser

class CustomUser(AbstractUser):
    phone_number = models.CharField(max_length=15, unique=True)

# В settings.py указываем свою модель
AUTH_USER_MODEL = "myapp.CustomUser"
🟠Разрешения и группы Django поддерживает группы пользователей и права доступа.
if user.has_perm("app_name.permission_codename"):
    print("У пользователя есть разрешение!")
Использование групп
from django.contrib.auth.models import Group

group = Group.objects.create(name="Editors")  # Создаем группу
user.groups.add(group)  # Добавляем пользователя в группу
Ставь 👍 и забирай 📚 Базу знаний

Ищу желающих заполнять карточки товаров на ВБ! Работа полностью на удаленке с зп до150 000 рублей в месяц. Без опыта, нужен т
Ищу желающих заполнять карточки товаров на ВБ! Работа полностью на удаленке с зп до150 000 рублей в месяц. Без опыта, нужен только телефон, занятость 3-6 часов в день. Всему обучат на бесплатном курсе и после возьму на работу: ✅ 3 дня уроков по 30 минут ✅ Домашки с проверкой и оплатой бонусами ✅ Плачу 10 тыс за каждую выполненную домашку Все кто пройдет курс, получат сертификат от школы с образовательной лицензией. ⚡ Набор заканчивается завтра. 👍 Для регистрации жмите кнопку "Зарегистрироваться": Зарегистрироваться #реклама 16+ course.wildmanager.ru О рекламодателе

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

🤔 Как проверить, что значение есть в словаре в Python? В Python можно проверять наличие ключа или значения в словаре разными способами. 🟠Проверка наличия ключа (`in`) Самый быстрый и правильный способ — проверять ключи (keys), так как доступ к ним O(1).
data = {"name": "Alice", "age": 25, "city": "New York"}

# Проверяем, есть ли ключ "age"
if "age" in data:
    print("Ключ найден!")
Вывод
Ключ найден!
Не надо проверять так
if data.get("age") is not None:  # ❌ Работает, но `in` быстрее
🟠Проверка наличия значения (`in values()`) Если нужно проверить значение, используем values()
if 25 in data.values():
    print("Значение найдено!")
Вывод
Значение найдено!
🟠Проверка и ключа, и значения (`items()`) Если нужно проверить пару (ключ, значение)
if ("age", 25) in data.items():
    print("Пара (ключ, значение) найдена!")
Ставь 👍 и забирай 📚 Базу знаний

Скидка 50% на менеджер паролей Пассворк Чёрная пятница в Пассворке — скидка 50% на покупку коробочного решения до 5 декабря.
Скидка 50% на менеджер паролей Пассворк Чёрная пятница в Пассворке — скидка 50% на покупку коробочного решения до 5 декабря. Что даёт Пассворк вашей компании Централизованное управление конфиденциальными данными. Всё остаётся в вашей инфраструктуре. Сотрудники быстро находят нужную информацию, администраторы управляют всей системой — полный контроль и безопасность. Почему Пассворк • Включён в единый реестр Минцифры • Имеет лицензии ФСТЭК и ФСБ • Качественная и оперативная поддержка • Все пароли и секреты хранятся на ваших серверах • Регулярные обновления и сопровождение на каждом этапе • Опыт внедрения в системообразующие предприятия страны • Сертифицирован с многими другими российскими решениями Пассворк создан для компаний и государственных учреждений, которым нужна проверенная безопасность. Получить скидку #реклама 16+ passwork.ru О рекламодателе

🤔 Как работает SQL JOIN? JOIN объединяет строки из двух и более таблиц по общим колонкам (чаще всего по ключам). База находит совпадения и возвращает комбинированный набор данных в соответствии с типом JOIN. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что делать если нужно перехватить исключение, выполнить действия и опять возбудить это же исключение? Если нужно: Перехватить исключение Выполнить какие-то действия (лог, очистка, уведомление и т. д.) Снова выбросить это же исключение
try:
    x = 1 / 0  # Ошибка деления на ноль
except ZeroDivisionError:
    print("Ошибка! Записываем в лог...")
    raise  # Повторно выбрасываем то же исключение
Вывод
Ошибка! Записываем в лог...
Traceback (most recent call last):
  File "script.py", line 2, in <module>
    x = 1 / 0
ZeroDivisionError: division by zero
Пример: Логирование перед повторным выбросом
import logging

logging.basicConfig(filename="errors.log", level=logging.ERROR)

try:
    user_input = int("abc")  # Ошибка ValueError
except ValueError as e:
    logging.error(f"Ошибка: {e}")  # Записываем в лог
    raise  # Повторно выбрасываем исключение
Пример: Очистка ресурсов перед выбросом исключения
try:
    file = open("data.txt", "r")
    data = file.read()
except FileNotFoundError:
    print("Файл не найден. Освобождаем ресурсы...")
    raise  # Снова выбрасываем исключение
finally:
    file.close()  # Гарантированно закроет файл
Ставь 👍 и забирай 📚 Базу знаний

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

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

🤔 Что такое cookie? Это небольшой файл, который создаётся веб-сайтом и сохраняется в браузере пользователя. Куки используются для хранения информации, связанной с пользователем, чтобы улучшить его взаимодействие с сайтом. 🚩Зачем нужны куки? Куки помогают веб-сайтам «запоминать» данные о пользователе. Вот основные цели их использования: 🟠Аутентификация Например, после входа в аккаунт куки сохраняют ваш статус (авторизован вы или нет). 🟠Сохранение предпочтений Куки могут хранить ваши настройки, например, выбранный язык или тему сайта. 🟠Сессии и корзины Если вы добавляете товары в корзину в интернет-магазине, эта информация может храниться в куки. 🟠Отслеживание действий Куки используются для аналитики и рекламы, чтобы понять, как вы взаимодействуете с сайтом, или показать персонализированные объявления. 🚩Как работают куки? Когда вы заходите на сайт, сервер может отправить куки вашему браузеру вместе с HTTP-ответом. Браузер сохраняет эти данные и отправляет их обратно на сервер при последующих запросах. Куки привязаны к домену, и только этот домен может их читать. 🚩Пример использования куки Создание куки на сервере (Python, Flask)
from flask import Flask, request, make_response

app = Flask(__name__)

@app.route('/set_cookie')
def set_cookie():
    response = make_response("Cookie установлена!")
    response.set_cookie('username', 'JohnDoe')  # Устанавливаем куки с именем "username"
    return response

@app.route('/get_cookie')
def get_cookie():
    username = request.cookies.get('username')  # Получаем значение куки
    return f'Привет, {username}!' if username else 'Куки не найдены.'

if __name__ == '__main__':
    app.run(debug=True)
🚩Типы куки 🟠Сессионные куки (Session Cookies) Хранятся только во время работы браузера и удаляются после его закрытия. 🟠Постоянные куки (Persistent Cookies) Сохраняются на устройстве пользователя до истечения срока действия. 🟠Безопасные куки (Secure Cookies) Передаются только через HTTPS для обеспечения безопасности. 🟠HttpOnly куки Не доступны через JavaScript, используются для защиты от XSS-атак. 🚩Плюсы и минусы ➕Помогают сохранять пользовательские данные для упрощения работы с сайтом. ➕Могут улучшить пользовательский опыт за счёт персонализации. ➖Могут использоваться для отслеживания активности (privacy concerns). ➖Неправильное управление куки может привести к утечкам данных. Ставь 👍 и забирай 📚 Базу знаний