Задача "Украшение чека" от яндекса, python

Вот мой код, но я не понимаю как правильно выровнять по краям числа, т.к. если написать большое число, оно выйдет за рамки. Переделывал код, в итоге ничего не получилось, выдает ошибку. Также есть закоменченная часть кода которая работает но нужно как то выравнивать по краю. Вот код:

a = str(input()) # Название
b = int(input()) # Цена
c = int(input()) # Вес
d = int(input()) # Кол-во денег

#print(f'{"Чек":=^32}\nТовар:{"": >30}{a}\nЦена:{"": >30}{c}кг * {b}руб/кг\nИтого:{"": >30}{(b*c)}руб\nВнесено:{"": >30}{d}руб\nСдача:{"": >30}{(d-b*c)}руб\n{"":=^35}')
print(f'{"Чек":=^32}')
print(f'Товар:{"": ^{(a)}}{a}')
print(f'Цена:{"": ^{(b)}}{(c)}кг * {(b)}руб/кг')
print(f'Итого:{"": ^{(b*c)}}{(b*c)}руб')
print(f'Внесено:{"": ^{(d)}}{(d)}руб')
print(f'Сдача:{"": ^{(d-b*c)}}{(d-b*c)}руб')
print(f'{"":=^32}')

UPD: Изменил код но всё равно не выравнивается

a = str(input()) # Название
b = int(input()) # Цена
c = int(input()) # Вес
d = int(input()) # Кол-во денег

print(f'{"Чек":=^35}')
print(f'{"Товар:": <35}{a}')
print(f'{"Цена:": <35}{c}кг * {b}кг/руб')
print(f'{"Итого:": <35}{b*c}руб')
print(f'{"Внесено:": <35}{d}')
print(f'{"Сдача": <35}{d-b*c}')
print(f'{"":=^35}')

Сама задача: Только скрин, если копирую сюда задачу, то она вся жирная


Ответы (3 шт):

Автор решения: Stanislav Volodarskiy

Что-то такое сработает. Самый хитрый момент в строке "цена" - две вложенные форматные строки.

name = input()
price = int(input())
weight = int(input())
amount = int(input())

print(f'{"Чек":=^35}')
print(f'Товар:{name:>29}')
print(f'Цена:{f"{weight}кг * {price}руб/кг":>30}')
print(f'Итого:{price * weight:>26}руб')
print(f'Внесено:{amount:>24}руб')
print(f'Сдача:{amount - price * weight:>26}руб')
print('=' * 35)
→ Ссылка
Автор решения: ZxNuClear

Хоть автор уже и написал, что решил с помощью rjust, но я все равно решил опубликовать этот ответ. Возможно кому то пригодится:

a = input() # Название
b = int(input()) # Цена
c = int(input()) # Вес
d = int(input()) # Кол-во денег

print(f'{"Чек":=^35}')
print("Товар:" + a.rjust(29))
print("Цена:" + f'{c}кг * {b}кг/руб'.rjust(30))
print("Итого:" + f'{b*c}руб'.rjust(29))
print("Внесено:" + f'{d}'.rjust(27))
print("Сдача:" + f'{d - b * c}'.rjust(29))
print("=" * 35)

Вывод:

================Чек================
Товар:                     Проверка
Цена:               5кг * 100кг/руб
Итого:                       500руб
Внесено:                       2500
Сдача:                         2000
===================================
→ Ссылка
Автор решения: Алексей Р
def just(text1, text2, width):
    return f'{text1}:{text2: >{width - len(text1) - 1}}'


goods = 'Яблоко красное'
weight = 5
price = 119.99
total = weight * price
pay = 1000

width, fmt = 35, '.2f'  # можно регулировать ширину чека и формат чисел в нем
print(f"""{"Чек":=^{width}}
{just('Товар', goods, width)}
{just('Цена', f'{weight:{fmt}}кг * {price:{fmt}}руб/кг', width)}
{just('Итого', f'{total:{fmt}}руб', width)}
{just('Внесено', f'{pay:{fmt}}руб', width)}
{just('Сдача', f'{pay - total:{fmt}}руб', width)}
{"":=^{width}}""")
================Чек================
Товар:               Яблоко красное
Цена:         5.00кг * 119.99руб/кг
Итого:                    599.95руб
Внесено:                 1000.00руб
Сдача:                    400.05руб
===================================
→ Ссылка