Python | Вопросы собесов (@python_easy_ru) — Telegram-канал | Telegram Dialogs
Telegram Dialogs — логотип
Все каналы
Python | Вопросы собесов

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

@python_easy_ru

12.7K подписчиков технологии

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

Последние публикации

Python | Вопросы собесов
20.09.2026 16:11 · 👁 994
🤔 Как работает поиск метакласса при создании объекта? Интерпретатор ищет metaclass в определении класса и его родителях. Если не найден, используется стандартный метакласс type. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Python | Вопросы собесов
20.09.2026 09:05 · 👁 1.1K
🤔 Что такое IP адрес и доменное имя? Это два важных понятия в контексте работы интернета и компьютерных сетей. Они используются для идентификации устройств и ресурсов в сети, а также для упрощения доступа к ним. 🚩IP-адрес (Internet Protocol Address) Это уникальный числовой идентификатор, присваиваемый каждому устройству, подключенному к сети, использующей протокол IP (Internet Protocol). IP-адреса используются для маршрутизации пакетов данных между устройствами в сети. 🟠IPv4 (Internet Protocol version 4) Формат: 32-битные числа, записанные в виде четырех десятичных чисел, разделенных точками (например, 192.168.1.1). Пример: 192.168.0.1, 8.8.8.8 🟠IPv6 (Internet Protocol version 6) Формат: 128-битные числа, записанные в виде восьми групп шестнадцатеричных чисел, разделенных двоеточиями (например, 2001:0db8:85a3:0000:0000:8a2e:0370:7334). Пример: 2001:0db8:85a3:0000:0000:8a2e:0370:7334, ::1 (loopback адрес) 🚩Доменное имя Это удобочитаемое имя, используемое для идентификации IP-адреса на уровне пользователя. Доменные имена упрощают доступ к ресурсам в интернете, так как их легче запомнить и использовать, чем числовые IP-адреса. 🟠Top-Level Domain (TLD) Верхний уровень, например, .com, .org, .net. 🟠Second-Level Domain (SLD) Основная часть доменного имени, например, example в example.com. 🟠Subdomain Дополнительные уровни, например, www в www.example.com. 🚩Преобразование доменных имен в IP-адреса Для преобразования доменных имен в IP-адреса используется система доменных имен (DNS, Domain Name System). DNS-серверы выполняют роль "телефонной книги" интернета, переводя доменные имена в соответствующие им IP-адреса. Ставь 👍 и забирай 📚 Базу знаний
Python | Вопросы собесов
19.09.2026 16:11 · 👁 925
🤔 Как строку можно перевести в байты и обратно? Перевод строки в байты выполняется методом encode(), а обратно — методом decode(). Важно использовать одну и ту же кодировку при преобразовании туда и обратно (utf-8 — стандарт Unicode). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Python | Вопросы собесов
19.09.2026 09:05 · 👁 911
🤔 Какие бывают виды тестов? Существует несколько видов тестов, каждый из которых имеет свою цель и особенности. 🚩Виды 🟠Юнит-тесты (Unit Tests) Проверка работы отдельных модулей или функций в изоляции от других частей системы. Ориентированы на минимальные части кода (функции, методы, классы). Высокая скорость выполнения. Простота написания и отладки. Обычно пишутся разработчиками. def add(a, b): return a + b def test_add(): assert add(1, 2) == 3 🟠Интеграционные тесты (Integration Tests) Проверка взаимодействия между различными модулями или компонентами системы. Тестируют комбинации модулей и их взаимодействие. Более сложные и медленные по сравнению с юнит-тестами. Могут выявить проблемы в интерфейсах между модулями. def fetch_data_from_api(): response = requests.get('https://api.example.com/data') return response.json() def test_fetch_data_from_api(): data = fetch_data_from_api() assert 'key' in data 🟠Системные тесты (System Tests) Проверка всей системы целиком на соответствие требованиям. Тестируют систему в рабочей среде. Включают проверку всех функциональных и нефункциональных требований. Могут включать пользовательские сценарии. Тестирование веб-приложения на основе реальных пользовательских сценариев, включая проверку интерфейса, баз данных и API. 🟠Приемочные тесты (Acceptance Tests) Проверка соответствия системы требованиям и ожиданиям заказчика или конечного пользователя. Часто выполняются вместе с заказчиком или пользователем. Фокусируются на бизнес-требованиях и пользовательских сценариях. Успешное прохождение приемочных тестов является критерием готовности системы к выпуску. Тестирование нового функционала с участием конечных пользователей для проверки его удобства и соответствия их ожиданиям. 🟠Регрессионные тесты (Regression Tests) Убедиться, что изменения в коде не вызвали новых ошибок в уже работающем функционале. Выполняются после внесения изменений в код. Обычно автоматизируются и включают повторное выполнение всех или части существующих тестов. Повторное выполнение всех юнит-тестов и интеграционных тестов после рефакторинга кода. 🟠Нефункциональные тесты (Non-functional Tests) Проверка нефункциональных аспектов системы, таких как производительность, безопасность, удобство использования и др. 🚩Основные виды: 🟠Тесты производительности Измеряют скорость выполнения, пропускную способность и время отклика системы. 🟠Тесты безопасности Оценивают защищенность системы от угроз и атак. 🟠Тесты удобства использования Проверяют удобство и интуитивность пользовательского интерфейса. Ставь 👍 и забирай 📚 Базу знаний
Python | Вопросы собесов
18.09.2026 16:11 · 👁 824
🤔 В чём разница между decimal и float? - float — тип с плавающей точкой, быстрый, но подвержен ошибкам округления из-за бинарного представления. Например: 0.1 + 0.2 != 0.3. - decimal.Decimal — тип из модуля decimal, который сохраняет точность десятичных дробей и идеально подходит для финансовых и бухгалтерских расчётов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Python | Вопросы собесов
18.09.2026 09:05 · 👁 843
🤔 Что такое обработка исключений? Обработка исключений — это механизм в программировании, который позволяет предотвращать аварийное завершение программы, если во время выполнения возникает ошибка. Вместо того чтобы программа просто "упала", обработка исключений дает возможность перехватить ошибку и обработать её безопасным способом. 🚩Почему это нужно? В реальном коде ошибки неизбежны: деление на ноль (ZeroDivisionError), обращение к несуществующему индексу (IndexError), работа с несуществующим файлом (FileNotFoundError) и т. д. 🚩Как это работает? В Python для обработки исключений используется конструкция try-except. Обработка деления на ноль try: x = 10 / 0 # Ошибка: деление на ноль except ZeroDivisionError: print("Ошибка! Деление на ноль невозможно.") Результат: вместо аварийного завершения программы мы получаем сообщение Ошибка! Деление на ноль невозможно. Обработка нескольких типов исключений try: num = int(input("Введите число: ")) # Возможна ошибка ValueError result = 10 / num # Возможна ошибка ZeroDivisionError except ZeroDivisionError: print("Ошибка! Деление на ноль.") except ValueError: print("Ошибка! Введите число.") Если пользователь введет "abc", программа не завершится с ошибкой, а выведет Ошибка! Введите число. Использование finally (код, который выполняется всегда) try: file = open("data.txt", "r") # Возможна ошибка FileNotFoundError content = file.read() except FileNotFoundError: print("Файл не найден!") finally: print("Программа завершена.") # Выполнится в любом случае Ставь 👍 и забирай 📚 Базу знаний
Python | Вопросы собесов
17.09.2026 09:05 · 👁 779
🤔 Зачем нужны классы BaseExceptionGroup и ExceptionGroup? В Python 3.11 были добавлены новые классы исключений BaseExceptionGroup и ExceptionGroup. Эти классы решают проблему одновременной обработки нескольких исключений, которые могут возникать в сложных ситуациях, таких как асинхронное программирование, многопоточность или обработка нескольких связанных ошибок. Давайте разберем, зачем они нужны, как их использовать и какие преимущества они дают. 🚩Зачем нужны `BaseExceptionGroup` и `ExceptionGroup`? Ранее в Python было возможно выбросить только одно исключение за раз, и обработка нескольких исключений одновременно требовала сложного и неочевидного кода. Например: При работе с асинхронными функциями или потоками может возникнуть сразу несколько ошибок, и их нужно корректно обработать. В больших приложениях или библиотеках (например, при работе с asyncio) может быть необходимость передать сразу несколько исключений, которые произошли в разных местах, как единый объект. BaseExceptionGroup и его подкласс ExceptionGroup позволяют группировать несколько исключений и выбрасывать их вместе в виде одного объекта. Это делает код более читаемым, упрощает обработку и исключает необходимость ручной агрегации ошибок. 🚩Разница между `BaseExceptionGroup` и `ExceptionGroup` BaseExceptionGroup - это базовый класс для группировки исключений. Он наследуется от BaseException и, как правило, не используется напрямую. ExceptionGroup - это подкласс, который наследуется от Exception. Этот класс используется для обработки групп исключений, которые возникают при обычных ошибках в коде (не фатальных). 🚩Как они работают? Классы исключений BaseExceptionGroup и ExceptionGroup позволяют создать "группу исключений", которая содержит несколько отдельных исключений. Это полезно, когда вам нужно: Указать несколько ошибок одновременно. Позволить обработчику исключений работать с каждым из них. def task_1(): raise ValueError("Ошибка в задаче 1") def task_2(): raise TypeError("Ошибка в задаче 2") try: # Создаем группу исключений raise ExceptionGroup( "Ошибки в задачах", [ValueError("Ошибка в задаче 1"), TypeError("Ошибка в задаче 2")] ) except ExceptionGroup as eg: for exc in eg.exceptions: print(f"Обнаружено исключение: {exc}") Результат Обнаружено исключение: Ошибка в задаче 1 Обнаружено исключение: Ошибка в задаче 2 🚩Обработка групп исключений При обработке ExceptionGroup можно использовать механизм фильтрации с помощью конструкции except*. Это нововведение в Python 3.11 позволяет обрабатывать разные типы исключений внутри группы по-разному. try: raise ExceptionGroup( "Ошибки в задачах", [ValueError("Ошибка 1"), TypeError("Ошибка 2"), ValueError("Ошибка 3")] ) except* ValueError as ve: print("Обрабатываем ValueError:", ve) except* TypeError as te: print("Обрабатываем TypeError:", te) Результат Обрабатываем ValueError: Ошибка 1 Обрабатываем ValueError: Ошибка 3 Обрабатываем TypeError: Ошибка 2 🚩Преимущества использования ➕Работа с несколькими исключениями одновременно. Вы можете объединить связанные ошибки и передать их в одном объекте. ➕Четкое разграничение типов исключений. Использование except* позволяет обработать каждое исключение из группы отдельно, не теряя гибкости. ➕Удобство при асинхронном программировании. В асинхронных задачах (asyncio) часто возникает несколько ошибок одновременно, и их можно группировать для дальнейшей обработки. ➕Упрощение сложной логики. Код становится проще и понятнее, так как не нужно вручную собирать и разбирать исключения. 🚩Когда использовать? Когда вы работаете с несколькими задачами, которые могут порождать ошибки одновременно (например, асинхронный код). Когда вы хотите сообщить о нескольких связанных ошибках, не выбрасывая каждую из них отдельно. Когда требуется раздельная обработка разных типов ошибок. Ставь 👍 и забирай 📚 Базу знаний
Python | Вопросы собесов
16.09.2026 16:11 · 👁 926
🤔 Чем отличается Docker от виртуальной машины? - Docker использует контейнеры и общую ОС-хоста. Легче, быстрее, меньше оверхед. - ВМ запускает полноценную ОС с ядром. Изолированнее, но ресурсоёмко. Docker лучше для CI/CD, микросервисов и быстрого развертывания. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Python | Вопросы собесов
16.09.2026 09:05 · 👁 1.1K
🤔 Что такое оконные функции? Оконные функции (window functions) — это специальные функции в SQL, которые выполняют вычисления по строкам внутри "окна" (группы строк), но не агрегируют их. SELECT id, месяц, продавец, сумма, SUM(сумма) OVER (PARTITION BY месяц) AS общий_доход_в_месяц FROM sales; 🟠`ROW_NUMBER()` – Нумерация строк Пронумеруем продажи каждого продавца в порядке убывания суммы. SELECT id, продавец, сумма, ROW_NUMBER() OVER (PARTITION BY продавец ORDER BY сумма DESC) AS номер FROM sales; 🟠`RANK()` и `DENSE_RANK()` – Рейтинг с учётом одинаковых значений Если два продавца получили одинаковую сумму, RANK() пропустит следующий номер, а DENSE_RANK() – нет. SELECT продавец, сумма, RANK() OVER (ORDER BY сумма DESC) AS ранг_1, DENSE_RANK() OVER (ORDER BY сумма DESC) AS ранг_2 FROM sales; 🟠3. `LAG()` и `LEAD()` – Доступ к предыдущей и следующей строке LAG() даёт предыдущее значение, LEAD() – следующее. SELECT месяц, продавец, сумма, LAG(сумма) OVER (PARTITION BY продавец ORDER BY месяц) AS предыдущий_месяц, LEAD(сумма) OVER (PARTITION BY продавец ORDER BY месяц) AS следующий_месяц FROM sales; 🟠Использование оконных функций с `FRAME` (ограничение окна) Иногда нужно анализировать не всю группу, а только несколько соседних строк. SELECT месяц, продавец, сумма, AVG(сумма) OVER (PARTITION BY продавец ORDER BY месяц ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS скользящее_среднее FROM sales; Ставь 👍 и забирай 📚 Базу знаний
Python | Вопросы собесов
15.09.2026 16:11 · 👁 1K
🤔 Как сделать package? Пакет в Python — это папка, содержащая файл __init__.py, который указывает, что она является модулем. Внутри пакета могут находиться другие модули или подпакеты. Это позволяет удобно структурировать код по функциональным блокам и импортировать нужные части. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.