Logo
TGCATALOG
Catalog Collections Blog
Python Interview Questions - tests

Python Interview Questions - tests

Questions, tests and tasks for Python interviews.

No ratings
599
29.10.2026
599
29.10.2026
No ratings
599
29.10.2026
Safe redirect via bot
О канале

Questions, tests and tasks for Python interviews.

Подписчиков 12,569
Тематика Technology
Язык English
Ссылка t.me/python_easy_ru

We also recommend

Kekaton AI | Voiceover and voice clone
Kekaton AI | Voiceover and voice clone
Bot

AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.

Description

Channel with questions for Python interviews. Tests, tasks and materials for preparation.

Latest posts

Python Interview Questions - tests
Python Interview Questions - tests
🔒Открыть пост
и посмотреть медиа
🤔 Что делать если нужно перехватить исключение, выполнить действия и опять возбудить это же исключение? Если нужно: Перехватить исключение Выполнить какие-то действия (лог, очистка, уведомление и т. д.) Снова выбросить это же исключение try: x = 1 / 0 # Ошибка деления на ноль except ZeroDivisionError: print("Ошибка! Записываем в лог...") raise # Повторно выбрасываем то же исключение Вывод Ошибка! Записываем в лог... Traceback (most recent call last): File "script.py", line 2, in 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() # Гарантированно закроет файл Ставь 👍 и забирай 📚 Базу знаний
Python Interview Questions - tests
Python Interview Questions - tests
🔒Открыть пост
и посмотреть медиа
🤔 Какие магические методы и для чего используются? Магические методы (например, __init__, __str__, __len__, __add__) используются для определения поведения объектов в специфичных ситуациях, таких как инициализация, строковое представление, арифметические операции или работа с коллекциями. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Python Interview Questions - tests
Python Interview Questions - tests
🔒Открыть пост
и посмотреть медиа
🤔 Почему вычислять большие значения в асинхронной функции плохо? Асинхронность (asyncio) в Python не выполняет код параллельно, а переключается между задачами во время ожидания (I/O-bound). Если в async-функции делать тяжёлые вычисления (CPU-bound), это блокирует asyncio, потому что в Python есть GIL (Global Interpreter Lock). 🚩Асинхронность в Python подходит для ввода-вывода (I/O-bound) Асинхронность позволяет выполнять задачи без блокировки, но только если они ждут чего-то (файлы, сеть, БД). import asyncio import aiohttp async def fetch(url): async with aiohttp.ClientSession() as session: async with session.get(url) as response: return await response.text() async def main(): urls = ["Ссылка скрыта * 5 results = await asyncio.gather(*(fetch(url) for url in urls)) asyncio.run(main()) 🚩Проблема с `async` и тяжёлыми вычислениями (CPU-bound) Если в async-функции делать тяжёлые вычисления, Python не сможет переключаться между задачами. import asyncio async def heavy_task(n): print(f"Вычисляю {n}...") total = sum(i**2 for i in range(n)) # Долгий процесс return total async def main(): await asyncio.gather(heavy_task(10**7), heavy_task(10**7)) asyncio.run(main()) 🚩Как правильно выполнять вычисления в `async`? 🟠Использовать `asyncio.to_thread()` (делегирование в потоки) В Python 3.9+ можно выполнять CPU-задачи в отдельных потоках, не блокируя asyncio. import asyncio def heavy_computation(n): return sum(i**2 for i in range(n)) async def main(): result = await asyncio.to_thread(heavy_computation, 10**7) print(result) asyncio.run(main()) 🟠Использовать `multiprocessing` (запуск на нескольких ядрах) Так как Python использует GIL, единственный способ выполнять настоящий параллелизм — это multiprocessing. import asyncio import multiprocessing def heavy_computation(n): return sum(i**2 for i in range(n)) async def main(): loop = asyncio.get_running_loop() with multiprocessing.Pool() as pool: result = await loop.run_in_executor(pool, heavy_computation, 10**7) print(result) asyncio.run(main()) Ставь 👍 и забирай 📚 Базу знаний
Python Interview Questions - tests
Python Interview Questions - tests
🔒Открыть пост
и посмотреть медиа
🤔 Что случится с сервером при использовании GET? Когда сервер получает HTTP-запрос типа GET, он выполняет следующие действия 🟠Анализ запроса проверяет URL и параметры в строке запроса (например, ?id=123). 🟠Поиск ресурса находит запрашиваемый файл, данные из базы или другой ресурс. 🟠Возврат ответа отправляет данные клиенту (если ресурс найден — код 200, если нет — 404). 🚩Особенности GET-запроса 🟠Безопасный не изменяет данные на сервере, используется только для чтения. 🟠Идемпотентный повторные запросы дают одинаковый результат. 🟠Параметры в URL данные передаются через строку запроса, что не подходит для конфиденциальной информации. import requests response = requests.get("Ссылка скрыта params={"id": 123}) print(response.text) # Данные с сервера Ставь 👍 и забирай 📚 Базу знаний
Python Interview Questions - tests
Python Interview Questions - tests
🔒Открыть пост
и посмотреть медиа
🤔 Как собрать образ в Docker? Образ собирается из Dockerfile при помощи команды сборки. В процессе выполнения создаются слои, соответствующие каждой инструкции в Dockerfile. По завершении формируется итоговый образ, который можно запускать как контейнер. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Python Interview Questions - tests
Python Interview Questions - tests
🔒Открыть пост
и посмотреть медиа
🤔 Какие есть операторы ограничений? Ограничения (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, '[email protected]'); INSERT INTO users (id, email) VALUES (2, '[email protected]'); -- Ошибка! Создание 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 Ставь 👍 и забирай 📚 Базу знаний
Python Interview Questions - tests
Python Interview Questions - tests
🔒Открыть пост
и посмотреть медиа
🤔 Какие ограничения есть у рекурсии в Python? Рекурсия — это мощный инструмент, но в Python она имеет ограничения, которые нужно учитывать при написании кода. 🟠Ограничение на глубину рекурсии (`sys.getrecursionlimit()`) В Python по умолчанию рекурсия ограничена 1000 вызовами, чтобы избежать переполнения стека. import sys print(sys.getrecursionlimit()) # 1000 (обычное значение) Если превысить этот лимит, программа вызовет ошибку def recursive(): return recursive() recursive() # RecursionError: maximum recursion depth exceeded 🚩Как изменить лимит? Можно увеличить глубину рекурсии, но это небезопасно sys.setrecursionlimit(2000) # Увеличиваем до 2000 🟠Рекурсия требует много памяти Каждый рекурсивный вызов создаёт новый фрейм в стеке вызовов. def factorial(n): if n == 1: return 1 return n * factorial(n - 1) print(factorial(10000)) # Ошибка из-за переполнения стека 🟠Отсутствие оптимизации хвостовой рекурсии Другие языки (например, Lisp, JavaScript) автоматически оптимизируют хвостовую рекурсию (Tail Call Optimization, TCO). Python не делает этого, поэтому даже "идеальная" рекурсия всё равно переполняет стек. def tail_recursive(n, acc=1): if n == 1: return acc return tail_recursive(n - 1, n * acc) print(tail_recursive(1000)) # Всё равно вызовет RecursionError 🟠Рекурсия медленнее цикла Рекурсивный вызов требует больше накладных расходов (создание стек-фреймов), чем обычный for или while. # Итеративный вариант (быстрее) def factorial_iter(n): result = 1 for i in range(1, n + 1): result *= i return result # Рекурсивный вариант (медленнее) def factorial_rec(n): if n == 1: return 1 return n * factorial_rec(n - 1) Ставь 👍 и забирай 📚 Базу знаний
Python Interview Questions - tests
Python Interview Questions - tests
🔒Открыть пост
и посмотреть медиа
🤔 Что такое звёздный синтаксис (*)? В Python * используется: – при распаковке (например, аргументов или списков), – для переменного числа аргументов функции, – в срезах и других операциях с коллекциями. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Python Interview Questions - tests
Python Interview Questions - tests
🔒Открыть пост
и посмотреть медиа
🤔 Можно ли при вызове метода save указать какие поля изменять? Да, в Django ORM можно указать конкретные поля для сохранения, используя параметр update_fields в методе .save(). 🚩Как использовать `update_fields` Пример модели from django.db import models class UserProfile(models.Model): name = models.CharField(max_length=100) email = models.EmailField() age = models.IntegerField() Обновляем только поле name, не трогая email и age user = UserProfile.objects.get(id=1) user.name = "Новый пользователь" user.save(update_fields=["name"]) # Обновит только поле `name` 🚩Что делает `update_fields`? Генерирует SQL-запрос только для указанных полей, например: UPDATE user_profile SET name = 'Новый пользователь' WHERE id = 1; 🚩Когда `update_fields` полезен? Уменьшает нагрузку на БД, так как обновляет только нужные поля. Полезен, если нужно изменить одно поле, а не всю запись. Избегает ненужных изменений в auto_now и auto_now_add полях (DateTimeField). 🚩Ограничения `update_fields` Нельзя использовать при создании объекта (save() с update_fields не работает для .create()). user = UserProfile(name="Alice", email="[email protected]") user.save(update_fields=["name"]) # ❌ Ошибка, объект ещё не в базе! Не обновляет auto_now-поля (DateTimeField) автоматически! updated_at = models.DateTimeField(auto_now=True) # Не обновится с `update_fields` Решение: обновить вручную: user.updated_at = timezone.now() user.save(update_fields=["name", "updated_at"]) Ставь 👍 и забирай 📚 Базу знаний
Python Interview Questions - tests
FAQ

Open Python Interview Questions - tests in Telegram and press the Start button. No separate registration is required.

Yes. The service is designed to be straightforward: open the resource, follow the on-screen instructions and start using it.

No. You can use Python Interview Questions - tests directly in Telegram unless the resource description says otherwise.

Access depends on the resource. Check the current information in Telegram after opening Python Interview Questions - tests.

The exact features depend on the resource. Open Python Interview Questions - tests to see its current functions, content and access conditions.
Subscriber dynamics
+-1.0% last 30 days
Current
12,569
Month ago
12,700
Average growth
+-4 / day
Updated
21 hours ago

Reviews for channel Python Interview Questions - tests

Log in to leave a review

Only registered users can share their opinion.

No reviews yet

Be the first to share your impression of this resource!

Similar resources

Loading
Switch to Light Theme
Home Catalog Collections Blog Login