• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 2. Условия

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Безопасность банка»

Вы работаете младшим разработчиком в передовом банке, который внедряет новую автоматизированную систему для проверки финансовых операций в реальном времени. Система должна быть быстрой и точной, чтобы предотвращать мошенничество, не создавая неудобств для добросовестных клиентов.

Вам поручено написать ключевой модуль этой системы. Программа должна анализировать транзакцию по трём параметрам: сумме, времени совершения (час) и статусу клиента (VIP или обычный). На основе этих данных программа выносит вердикт: "Транзакция одобрена" или "Транзакция отклонена".

Правила проверки:

Транзакция считается допустимой и одобряется, если выполняется хотя бы одно из следующих условий:

  1. Сумма транзакции строго меньше 10000 условных единиц. В этом случае операция одобряется всегда, независимо от времени и статуса клиента.
  2. Клиент имеет статус "VIP", и транзакция совершается строго до 18:00.
  3. Клиент имеет статус "обычный", сумма транзакции строго меньше 5000 условных единиц, и транзакция совершается строго до 18:00.

Если ни одно из этих условий не выполняется, система должна отклонить транзакцию.

Ваша задача — написать программу, которая запрашивает у пользователя сумму, время и статус, а затем выводит решение системы.

Формат ввода

Сумма транзакции (целое число)
Время совершения транзакции, час (целое число от 0 до 23)
Статус пользователя (строка, "VIP" или "обычный")

Формат Вывода

Вердикт системы (строка, "Транзакция одобрена" или "Транзакция отклонена")

Пример

Ввод

15000
17
VIP

Вывод

Транзакция одобрена

Подсказка

Тут подсказки не будет, решай сам!

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Запрашиваем сумму транзакции и преобразуем введенную строку в целое число
transaction_amount = int(input())

# Запрашиваем время совершения транзакции (только час) и также преобразуем в целое число
transaction_time = int(input())

# Запрашиваем статус клиента. Это значение остается строкой ("VIP" или "обычный")
user_status = input()

# Основное сложное условие для проверки транзакции
# Оно объединяет все три правила через логический оператор "или" (or)
# Если хотя бы одна из частей условия верна (True), то весь блок считается верным
if (transaction_amount < 10000) or \
   (user_status == "VIP" and transaction_time < 18) or \
   (user_status == "обычный" and transaction_amount < 5000 and transaction_time < 18):
    # Если условие выполнено, выводим сообщение об одобрении
    print("Транзакция одобрена")
else:
    # Если ни одна из частей сложного условия не выполнилась, выводим сообщение об отклонении
    print("Транзакция отклонена")

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!