Задачи по программированию
-
Задача 1. Написать функцию, которая переворачивает строку. Входная строка задается, как массив символов s. Нужно перевернуть входной массив на месте без дополнительной памяти
Example 1: Input: s = ["h","e","l","l","o"] Output: ["o","l","l","e","h"] Example 2: Input: s = ["H","a","n","n","a","h"] Output: ["h","a","n","n","a","H"] - Задача 2. Написать декоратор, который выводит время выполнения функции
- Задача 3. Реализовать класс Singleton
-
Задача 4. Написать класс RedisLock — контекстный менеджер, который будет блокировать доступ другим обращениям при обращении в Redis по ключу
def redis_get(key: str): pass def redis_set(key: str, value: Any, expire: float): pass def redis_delete(key: str): pass class RedisLock: pass def update_user(user_id: int): key = f"user__{user_id}" with RedisLock(key=key): pass -
Задача 5. Что не так в коде:
import asyncio import aiohttp async def download_file(url: str, filename: str) -> None: session = aiohttp.ClientSession() resp = await session.get(url) body = await resp.read() with open(filename, "wb") as f: f.write(body)
Задачи по SQL
Пусть есть таблица товаров и их производителей.
Таблица "Продукты"
+----------------+---------+
| Column Name | Type |
+----------------+---------+
| id | int | id - уникальный ключ для таблицы продуктов
| name | varchar | наименование продукта
| company | varchar | ссылка на компанию
| product_count | int | количество продукта
| price | int | цена продукта
| is_discounted | int | есть скидка на продукт
+----------------+---------+
- 1. Надо сгруппировать товары по производителям с ценой выше 30000 рублей.
- 2. Надо сгруппировать по производителям и найти все группы, для которых определено более 1 модели и общая стоимость товаров превышает 80000