Предмет: Информатика, автор: artem4592

Создать программу, которая будет определять, может ли человек купить выбранный им дом или нет. Пояснения по программе: создать класс Human, объекты которого имеют публичные атрибуты (name, age) и приватные (money, house). Этот класс должен содержать методы earn_money по зарабатыванию денег. Т.е. каждый раз, вызывая метод earn_money, конкретному человеку должна прибавиться некоторая сумма денег в приватную переменную money. Создать метод buy_house, который будет сравнивать текущее количество денег у человека со стоимостью дома и выводить соответствующее сообщение о возможности или невозможности покупки. Если дом купить можно, то вывести информацию о том, сколько денег осталось на счету у покупателя. итоговая информация по работе программы может выглядеть следующим образом: - создать родительский класс House, хранящий информацию о цене (price) и площади дома (area). Создать дочерний класс SmallHouse, в конструктор которого передается только один параметр price. Условимся, что все дома класса SmallHouse имеют постоянную площадь 50 м². В родительском класса House создать магический метод_str____0, который будет выводить информацию об объекте.​

Ответы

Автор ответа: pupkinll2016
2

Ответ:

Python

class House:

def __init__(self, price, area):

self.price = price

self.area = area

def __str__(self):

return f"Дом площадью {self.area} м² стоимостью {self.price} денег"

class SmallHouse(House):

def __init__(self, price):

super().__init__(price, 50)

class Human:

def __init__(self, name, age, money):

self.name = name

self.age = age

self.money = money

self.house = None

def earn_money(self, amount):

self.money += amount

def buy_house(self, house):

if self.money >= house.price:

self.money -= house.price

self.house = house

print(f"{self.name} купил {self.house}. Остаток на счету: {self.money}")

else:

print(f"{self.name} не может купить {house}. Недостаточно денег")

# Пример использования программы

if __name__ == '__main__':

small_house = SmallHouse(100000)

john = Human("John", 30, 80000)

mary = Human("Mary", 25, 110000)

john.buy_house(small_house) # John не может купить Дом площадью 50 м² стоимостью 100000 денег. Недостаточно денег

mary.buy_house(small_house) # Mary купил Дом площадью 50 м² стоимостью 100000 денег. Остаток на счету: 10000

Объяснение:

Программа создает два класса: House и SmallHouse. Класс House является родительским классом и содержит атрибуты price и area (стоимость и площадь дома соответственно), а также магический метод __str__, который позволяет вывести информацию об объекте. Класс SmallHouse является дочерним классом и имеет только один аргумент в конструкторе - цену дома. При создании объекта класса SmallHouse автоматически устанавливается площадь дома в 50 м².

Класс Human содержит атрибуты name, age, money и house (имя, возраст, количество денег и дом соответственно) и два метода: earn_money, который добавляет заданную сумму денег к приватному атрибуту money, и buy_house, который проверяет, хватает ли денег на покупку дома и выводит соответствующее сообщение о возможности или невозможности покупки.

Пример использования программы создает объекты классов SmallHouse и Human и демонстрирует, как работает метод buy_house.

Похожие вопросы
Предмет: Алгебра, автор: saawqq
Предмет: Қазақ тiлi, автор: darizansymbat