и посмотреть медиа
Python Interview Questions - tests
и посмотреть медиа
Questions, tests and tasks for Python interviews.
Questions, tests and tasks for Python interviews.
AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.
Channel with questions for Python interviews. Tests, tasks and materials for preparation.
🤔 Что такое SOLID? SOLID — это пять принципов объектно-ориентированного программирования, которые помогают проектировать гибкие, расширяемые и поддерживаемые системы. Они включают в себя: Single Responsibility (одна ответственность), Open/Closed (открытость для расширения, закрытость для изменений), Liskov Substitution (замена по Лисков), Interface Segregation (разделение интерфейсов) и Dependency Inversion (инверсия зависимостей). Эти принципы улучшают архитектуру программного обеспечения и делают код более надежным. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какая сложность у пузырьковой сортировки? Пузырьковая сортировка (Bubble Sort) — это один из самых простых, но неэффективных алгоритмов сортировки. 🚩Как работает пузырьковая сортировка? 1. Проходим по массиву несколько раз. 2. На каждой итерации сравниваем соседние элементы и меняем их местами, если они идут не в том порядке. 3. После первого прохода наибольший элемент оказывается в конце массива. 4. Повторяем процесс, пока массив не отсортируется. 🚩Рассчёт сложности (`O(n²)`) Количество сравнений в худшем случае: - На первой итерации: n-1 сравнений - На второй: n-2 сравнений - На третьей: n-3 сравнений - … - Всего: (n-1) + (n-2) + ... + 1 = O(n²) Количество обменов (swap) в худшем случае: - Если массив полностью перевёрнут, на каждой итерации будет максимальное количество перестановок → O(n²). 🚩Оптимизированная пузырьковая сортировка (`O(n)`) Если на проходе по массиву не было перестановок, значит массив уже отсортирован. def bubble_sort(arr): n = len(arr) for i in range(n): swapped = False # Флаг, отслеживающий перестановки for j in range(n - i - 1): if arr[j] > arr[j + 1]: # Если элементы в неправильном порядке, меняем местами arr[j], arr[j + 1] = arr[j + 1], arr[j] swapped = True if not swapped: break # Если перестановок не было, завершаем сортировку arr = [1, 2, 3, 4, 5] # Уже отсортированный массив bubble_sort(arr) print(arr) # [1, 2, 3, 4, 5] Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 В каких случаях можно обработать SyntaxError? Обычно SyntaxError возникает до запуска программы, но можно поймать его при динамическом выполнении кода через eval() или exec(). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Для чего нужны библиотеки sqlparse, asgiref в Django? Django использует sqlparse и asgiref как вспомогательные библиотеки для работы с SQL и асинхронностью. Разберём их назначение подробно. 🟠`sqlparse` – разбор SQL-запросов sqlparse (SQL Parser) — это библиотека для анализа, форматирования и обработки SQL-запросов. В Django она используется в админке, логах и отладке ORM. 🚩Где используется в Django? Форматирование SQL-запросов в django.db.connection.queries from django.db import connection from sqlparse import format queries = connection.queries # Получаем список SQL-запросов for q in queries: print(format(q["sql"], reindent=True, keyword_case="upper")) # Красивый SQL Логирование SQL-запросов sqlparse помогает Django красиво выводить SQL-запросы в DEBUG=True. Команда sqlmigrate python manage.py sqlmigrate app_name 0001 🟠`asgiref` – асинхронность в Django asgiref (Asynchronous Server Gateway Interface Reference) — это библиотека, которая помогает Django работать в асинхронном (async) режиме. Django поддерживает ASGI с версии 3.0, и asgiref — это её обязательная зависимость. 🚩Где используется в Django? 🟠Поддержка ASGI Django с версии 3.0 поддерживает асинхронные вьюхи, WebSockets и асинхронные базы данных (например, с asyncpg). В settings.py есть параметр: ASGI_APPLICATION = "myproject.asgi.application" 🟠Асинхронные middleware Django 4.x поддерживает асинхронные middleware через asgiref.sync и asgiref.local. 🟠Преобразование `async` → `sync` и наоборот Django использует sync_to_async() и async_to_sync() из asgiref: from asgiref.sync import sync_to_async def sync_function(): return "Hello from sync!" async_function = sync_to_async(sync_function) print(async_function()) # Вызывает синхронную функцию в асинхронном коде 🟠Локальное хранилище для асинхронных задач (`asgiref.local.Local`) Позволяет хранить данные отдельно для каждого потока или запроса. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как распознать NP-полную задачу? Задача NP-полная, если: - она принадлежит классу NP (решение проверяется за полиномиальное время); - она неизвестна как решаемая за полиномиальное время, но если бы нашлось решение для одной NP-полной задачи — решились бы и остальные; - она сводится к другим NP-полным задачам. Примеры: задача коммивояжёра, рюкзака, раскраски графа. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что быстрее python или c++? C++ быстрее Python, потому что: C++ — компилируемый язык, а Python — интерпретируемый. C++ работает ближе к "железу", а Python использует абстракции. C++ использует статическую типизацию, а Python динамическую (дополнительные проверки замедляют код). 🚩Разница в скорости выполнения Простой пример: сложение чисел в цикле Python (медленно) import time start = time.time() s = 0 for i in range(10_000_000): s += i end = time.time() print("Python:", end - start, "сек") Результат Python: 0.8 сек C++ (быстро) #include #include int main() { auto start = std::chrono::high_resolution_clock::now(); long long s = 0; for (int i = 0; i < 10000000; i++) { s += i; } auto end = std::chrono::high_resolution_clock::now(); std::cout
Открыть канал и посмотреть медиа🤔 Какие типы HTTP запросов знаешь? В чем их отличия? Типы: GET (получение данных), POST (отправка данных), PUT (обновление ресурса), DELETE (удаление ресурса), PATCH (частичное обновление). GET передаёт параметры в URL, а POST отправляет данные в теле запроса. PUT и DELETE изменяют состояние сервера, а PATCH обновляет только указанные части ресурса. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что такое хранитель (Memento)? Это поведенческий паттерн проектирования, который позволяет сохранять и восстанавливать предыдущее состояние объекта без нарушения инкапсуляции. Этот паттерн особенно полезен для реализации операций отмены и повтора, так как он позволяет хранить состояния объектов и возвращать их к этим состояниям по необходимости. 🚩Зачем нужен? 🟠Сохранение состояния: Позволяет сохранять текущее состояние объекта и восстанавливать его позже. 🟠Инкапсуляция: Обеспечивает сохранение состояния объекта без нарушения его инкапсуляции. Внутренние детали объекта остаются скрытыми от других объектов. 🟠Отмена и повтор операций: Поддерживает функциональность отмены и повтора операций, так как позволяет возвращать объект к предыдущим состояниям. Пример реализации class Memento: def __init__(self, state: str): self._state = state def get_state(self) -> str: return self._state class TextEditor: def __init__(self): self._state = "" self._history = [] def type(self, text: str): self._save_state() self._state += text def _save_state(self): self._history.append(Memento(self._state)) def undo(self): if not self._history: return memento = self._history.pop() self._state = memento.get_state() def get_content(self) -> str: return self._state # Клиентский код для использования паттерна Хранитель def main(): editor = TextEditor() editor.type("Hello, ") editor.type("world!") print(editor.get_content()) # Hello, world! editor.undo() print(editor.get_content()) # Hello, editor.undo() print(editor.get_content()) # if __name__ == "__main__": main() 1⃣`Memento`: Сохраняет состояние объекта. Он предоставляет методы для получения сохраненного состояния, но не предоставляет методов для изменения состояния, что обеспечивает неизменность. 2⃣`TextEditor`: Создает и использует объекты Memento для сохранения и восстановления своего состояния. Методы type и undo позволяют редактировать текст и отменять изменения. 3⃣`_save_state`: Сохраняет текущее состояние редактора в истории перед каждым изменением. 4⃣`undo`: Восстанавливает предыдущее состояние редактора из истории. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что такое асинхронность? Асинхронность в Python позволяет выполнять несколько операций одновременно, не блокируя выполнение программы. Асинхронные функции определяются с помощью ключевого слова `async`, и их выполнение управляется событиями, что делает возможным параллельное выполнение задач без использования потоков или процессов. Основные функции асинхронности включают `asyncio` и `await` для управления асинхронными операциями. Асинхронность особенно полезна для ввода-вывода и сетевых операций. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!