Давайте приведём в порядок чек, который печатали ранее.
Все строки должны быть длиной в 35 символов.
Формат ввода
- Название товара;
- цена товара;
- вес товара;
- количество денег у покупателя.
Формат вывода:
Красивый чек в формате:
================Чек================
Товар: <продукт>
Цена: <число>кг * <число>руб/кг
Итого: <число>руб
Внесено: <число>руб
Сдача: <число>руб
===================================
Пример
Ввод
черешня
2
3
10
Вывод
================Чек================
Товар: черешня
Цена: 3кг * 2руб/кг
Итого: 6руб
Внесено: 10руб
Сдача: 4руб
===================================
Решение
Немного математики и много f-строк. В целом, ничего сложного кроме вопроса “как же все-таки поместить корректно в f-строку все эти данные”.
Посмотреть код
Решение (один из простейших вариантов оформления).
Python
good = input()
price = int(input())
weight = int(input())
cash = int(input())
price_string = str(weight) + 'кг * ' + str(price) + 'руб/кг'
sum_string = str(price * weight) + 'руб'
cash_string = str(cash) + 'руб'
change_string = str(cash - price * weight) + 'руб'
print('================Чек================')
print(f'Товар: {good:>28}')
print(f'Цена: {price_string:>29}')
print(f'Итого: {sum_string:>28}')
print(f'Внесено: {cash_string:>26}')
print(f'Сдача: {change_string:>28}')
print('===================================')
print(f”{‘Чек’:=^35}”)
print(f”{”:=^35}”)
Спасибо за комментарий.
Можно и так.
Я предпочитаю копипастить такие штуки из “ТЗ”
Это позволяет не знать, что там должно быть 35 символов.
Кроме того, если вдруг в ТЗ слово “Чек” окажется сдвинуто на одну позицию вправо, такой подход не сработает.
Опять же при выравнивании четного количества символов внутри строки с нечетным количеством символов результат предсказать сложно – он сильно зависит от того, каким способом вы выравниваете.
Поэтому, все же копипаст.
Как вариант. Чуть более громоздко, но не нужно высчитывать символы.