Задание для самостоятельной работы: разработать программу, которая будет выводить в консоль чек на покупки в магазине мебели. В чеке должно быть не менее 5 наименований, обязателен расчет итоговой суммы чека и наличие скидок (разные скидки на разные товары). Задание для самостоятельной работы: разработать программу, которая будет выводить в консоль чек на покупки в магазине мебели. В чеке должно быть не менее 5 наименований, обязателен расчет итоговой суммы чека и наличие скидок (разные скидки на разные товары).
python
class Product:
def __init__(self, name, price):
self.name = name
self.price = price
В этом классе определяются атрибуты товара: название (name) и цена (price). В конструкторе класса принимаются эти атрибуты.
2. Создание класса "Чек"
python
class Receipt:
def __init__(self):
self.products = []
def add_product(self, product):
self.products.append(product)
def calculate_total(self):
total = 0
for product in self.products:
total += product.price
return total
def apply_discount(self, product_name, discount):
for product in self.products:
if product.name == product_name:
product.price -= (product.price * discount)
def print_receipt(self):
print("Чек на покупки:")
for product in self.products:
print(f"{product.name}: {product.price} руб.")
total = self.calculate_total()
print(f"Итого: {total} руб.")
В этом классе определяются методы для работы с чеком. В конструкторе класса создается пустой список products, который будет хранить добавленные товары. Метод add_product принимает объект товара и добавляет его в список products.
Метод calculate_total осуществляет расчет итоговой суммы чека путем прохода по всем товарам в списке и суммирования их цен.
Метод apply_discount принимает название товара и скидку в процентах. Он проходит по всем товарам в списке и, если находит товар с указанным названием, применяет к его цене скидку.
Метод print_receipt выводит чек на экран. Он проходит по всем товарам в списке и печатает их названия и цены. Затем вызывает метод calculate_total для расчета итоговой суммы чека и печатает ее.
3. Создание объекта чека и добавление товаров
python
receipt = Receipt()
product1 = Product("Стул", 1000)
receipt.add_product(product1)
product2 = Product("Стол", 2000)
receipt.add_product(product2)
product3 = Product("Диван", 3000)
receipt.add_product(product3)
product4 = Product("Шкаф", 4000)
receipt.add_product(product4)
product5 = Product("Кровать", 5000)
receipt.add_product(product5)
Создается объект чека receipt и объекты товаров product1, product2, ..., product5. Метод add_product вызывается для каждого товара и добавляет его в чек.
4. Применение скидок
python
receipt.apply_discount("Стул", 0.1) # скидка 10% на стул
receipt.apply_discount("Диван", 0.2) # скидка 20% на диван
Метод apply_discount вызывается для объекта чека receipt и указывается название товара и скидка в процентах. В данном случае применяются скидки 10% на стул и 20% на диван.
5. Вывод чека на экран
python
receipt.print_receipt()
Метод print_receipt вызывается для объекта чека receipt и выводит чек на экран.
Пример вывода:
Чек на покупки:
Стул: 900 руб.
Стол: 2000 руб.
Диван: 2400 руб.
Шкаф: 4000 руб.
Кровать: 5000 руб.
Итого: 14300 руб.
В данном примере на стул была применена скидка 10% (цена уменьшилась с 1000 руб. до 900 руб.), а на диван - скидка 20% (цена уменьшилась с 3000 руб. до 2400 руб.). Итоговая сумма чека составила 14300 руб.
Таким образом, разработанная программа позволяет добавлять товары в чек, применять к ним скидки разного размера и выводить чек на экран с указанием итоговой суммы.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет