JustCaptain kod-buduschego
fb76709a56ac3b52d88ac79d26e74cc4267d61b2
Перейти к файлу
Код
TASKS.md

Уровень 1 — Лёгкий

Тема: глобальная ставка налога

Вводные

Компания применяет единый налог на все продажи.
Налог хранится как глобальная переменная.
Функции используют её для расчётов.

⸻

Данные

TAX_RATE = 0.19 # 19% налог
orders = [
{"product": "Book", "price": 30},
{"product": "Pen", "price": 5},
{"product": "Notebook", "price": 12}
]

⸻

Задачи

  1. Расчёт цены с налогом

Написать функцию:

def calculate_price_with_tax(price):

Требования:

  • использовать глобальную переменную TAX_RATE
  • вернуть цену с налогом

⸻

  1. Расчёт всех цен

Написать функцию:

def get_all_prices_with_tax(orders):

Требования:

  • пройти циклом по заказам
  • использовать calculate_price_with_tax()
  • вернуть список цен с налогом

⸻

  1. Локальная скидка

Написать функцию:

def apply_discount(price):

Требования:

  • создать локальную переменную discount = 0.1
  • вернуть цену со скидкой

⸻

Уровень 2 — Средний

Тема: бюджет отдела

Вводные

Компания задаёт месячный бюджет отдела.
Бюджет — глобальная переменная.
Расходы рассчитываются внутри функций.

⸻

Данные

MONTHLY_BUDGET = 5000
expenses = [
{"type": "Office Supplies", "amount": 600},
{"type": "Software", "amount": 1200},
{"type": "Marketing", "amount": 1800},
{"type": "Travel", "amount": 700}
]

⸻

Задачи

  1. Общие расходы

def calculate_total_expenses(expenses):

Требования:

  • создать локальную переменную total
  • пройти циклом
  • вернуть сумму расходов

⸻

  1. Остаток бюджета

def calculate_remaining_budget(expenses):

Требования:

  • использовать глобальную MONTHLY_BUDGET
  • вызвать calculate_total_expenses()
  • вернуть остаток бюджета

⸻

  1. Проверка превышения бюджета

def is_budget_exceeded(expenses):

Требования:

  • вернуть True, если расходы больше бюджета
  • иначе False

⸻

  1. Изменение глобального бюджета

def increase_budget(amount):

Требования:

  • использовать ключевое слово global
  • увеличить MONTHLY_BUDGET

⸻

Уровень 3 — Тяжёлый

Тема: управление системой бонусов сотрудников

Вводные

Компания начисляет бонусы сотрудникам.
Есть глобальные настройки системы бонусов.
Функции рассчитывают индивидуальные бонусы.

⸻

Данные

BONUS_RATE = 0.05
MIN_SALES_FOR_BONUS = 1000
employees = [
{"name": "Anna", "sales": 1200},
{"name": "Boris", "sales": 800},
{"name": "Dmitry", "sales": 2000},
{"name": "Elena", "sales": 950}
]

⸻

Задачи

  1. Расчёт бонуса сотрудника

def calculate_bonus(employee):

Требования:
Локальные переменные:

sales
bonus

Логика:

  • если sales >= MIN_SALES_FOR_BONUS
  • бонус:

sales * BONUS_RATE

  • иначе бонус = 0
  • вернуть бонус

⸻

  1. Список бонусов

def generate_bonus_report(employees):

Требования:
Вернуть список:

[
{"name": "...", "bonus": ...}
]

Использовать:

  • цикл
  • функцию calculate_bonus()
  • локальные переменные

⸻

  1. Общая сумма бонусов

def calculate_total_bonuses(employees):

Требования:

  • локальная переменная total_bonus
  • цикл
  • суммирование бонусов

⸻

  1. Изменение правил бонусов

def update_bonus_rate(new_rate):

Требования:

  • использовать global BONUS_RATE
  • изменить значение

⸻

  1. Массовое обновление порога продаж

def update_min_sales(new_min):

Требования:

  • использовать global MIN_SALES_FOR_BONUS
  • изменить значение

⸻

Дополнительные задачи (усложнение уровня 3)

  1. Локальный временный коэффициент

def calculate_bonus_with_multiplier(employee):

Требования:

  • создать локальную переменную:

multiplier = 1.2

  • применить её к бонусу
  • глобальные переменные не менять

⸻

Что должно закрепиться

  • различие глобальных и локальных переменных
  • область видимости
  • использование global
  • локальные переменные внутри функций
  • изменение глобальных переменных
  • передача данных через параметры
  • повторное использование функций