Загрузка данных


Задача 1. Смартфон
Представь, что ты программируешь виртуальный телефон. Тебе нужно создать класс, который умеет следить за уровнем заряда батареи.
Название класса: Smartphone
Что принимает при создании (__init__):
brand — марка телефона (текст, например: "Apple").
model — модель телефона (текст, например: "iPhone 15").
battery_level — заряд батареи в процентах (число от 0 до 100). По умолчанию равен 100.

Какие методы нужно написать:
play_game(hours) — принимает количество часов игры (hours). Каждый час игры тратит 15% заряда. Если заряд опускается до 0 или уходит в минус, батарея становится равна 0, а на экран выводится сообщение: "Смартфон разряжен".
charge(minutes) — принимает время зарядки в минутах (minutes). Каждые 2 минуты зарядки прибавляют 1% к батарее (используй целочисленное деление //). Заряд телефона не может стать больше 100%.
get_status() — не принимает аргументов. Возвращает красивую строку со статусом, например: "Смартфон Samsung S24. Заряд: 85%".

Задача 2. Банковский счет 
Ты создаешь систему для работы с электронными кошельками. Главное правило — кошелек не должен уходить в минус, а деньги можно переводить между разными пользователями.
Название класса: BankAccount
Что принимает при создании (__init__):
holder — имя владельца счета (текст, например: "Алексей").
balance — баланс кошелька (число). По умолчанию равен 0.

Какие методы нужно написать:
deposit(amount) — принимает сумму денег (amount) и просто увеличивает баланс счета на это число.
withdraw(amount) — принимает сумму (amount), которую нужно снять. Метод должен проверить: если на счету денег меньше, чем хочется снять, то баланс не меняется, а на экран выводится: "Недостаточно средств". Если денег хватает, то они списываются со счета.
transfer(target_account, amount) — принимает другой объект кошелька (target_account) и сумму перевода (amount). Сначала метод проверяет, хватает ли денег на текущем счету. Если нет — пишет об ошибке. Если хватает, то списывает деньги у текущего кошелька и зачисляет их на баланс target_account (для этого можно вызвать метод .deposit() прямо внутри перевода).