Для реализации системы бана вывода денег на 3 месяца при пополнении баланса в Python, вам потребуется использовать некоторые структуры данных и логику.
Одним из способов реализации этой системы является использование словаря для хранения информации о каждом клиенте банка. Ключом словаря будет являться уникальный идентификатор клиента, а значением будет список, содержащий информацию о его балансе и дате последнего пополнения.
Для начала, создайте пустой словарь, который будет использоваться для хранения данных о клиентах:
clients = {}
Затем, напишите функцию, которая будет обрабатывать пополнение баланса клиента и проверять, требуется ли применить систему бана в соответствии с заданным условием (3 месяца без пополнения). Для проверки даты можно использовать модуль datetime
.
from datetime import datetime, timedelta def topup_balance(client_id, amount): # проверяем, существует ли клиент if client_id in clients: # получаем дату последнего пополнения last_topup_date = clients[client_id][1] # проверяем, прошло ли 3 месяца if last_topup_date + timedelta(days=90) < datetime.now(): # обновляем баланс и дату последнего пополнения clients[client_id][0] += amount clients[client_id][1] = datetime.now() print("Пополнение баланса успешно произведено.") else: print("Вывод денег заблокирован на 3 месяца.") else: print("Клиент не найден.")
Наконец, напишите небольшую программу-демонстрацию, которая позволит вам протестировать вашу реализацию:
# добавление клиента в словарь clients["001"] = [0, datetime.now()] # тестирование пополнения topup_balance("001", 1000) # Пополнение баланса успешно произведено. topup_balance("001", 500) # Вывод денег заблокирован на 3 месяца.
В этом примере, мы добавляем клиента с уникальным идентификатором "001" и инициализируем его баланс нулем, а также сохраняем дату последнего пополнения на текущий момент.
Затем мы вызываем функцию topup_balance
для пополнения баланса клиента на 1000 и 500 единиц. В первом случае, пополнение происходит успешно, так как прошло менее 3 месяцев с момента последнего пополнения. Во втором случае, пополнение блокируется, так как прошло более 3 месяцев.
Вы можете доработать этот код, добавив другие функции, такие как withdraw
(снятие денег с баланса) или get_balance
(получение текущего баланса клиента). Также, вы можете добавить обработку исключений и дополнительную валидацию данных в соответствии с требованиями вашего проекта.