Помогите понять, не могу рзобраться с f-строками
product = input()
price = int(input())
weight = int(input())
money = int(input())
cost = str(weight) + "кг * " + str(price) + "руб/кг"
print("================Чек================")
print(f"Товар:{product:>29}")
print(f"Цена:{cost:>30}")
print(f"Итого:{price * weight:>26}руб")
print(f"Внесено:{money:>24}руб")
print(f"Сдача:{money - (price * weight):>26}руб")
print("=" * 35)
Этот код работает, но я не могу понять, почему нужно для "Цены" создавать отдельную переменную, чтобы f-строка выводила ответ, потому что следующий код выходит за границы:
name = input()
price = int(input())
weight = int(input())
cash = int(input())
a = weight*price
print('=' * 16 + 'Чек' + '=' * 16)
print(f'Товар:{name:>29}')
print(f'Цена:{weight:>19}кг * {price}руб/кг')
print(f'Итого:{a:26}руб')
print(f'Внесено:{cash:>24}руб')
print(f'Сдача:{cash - a:>26}руб')
print('=' * 35)
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
В первом случае вы четко посчитали сколько символов надо после
Цена: и это будет тридцать - {cost:>30}
Во втором случае вы не знаете какая длина будет у переменной price,
поэтому надо вставить дополнительный блок расчета.
product = input('Введите наименование товара: ')
price = int(input('Введите Цену: '))
weight = int(input('Введите Количество: '))
money = int(input('Сумма внесенных средств: '))
cost = str(weight) + "кг * " + str(price) + "руб/кг"
print("================Чек================")
print(f"Товар:{product:>29}")
print(f"Цена:{cost:>30}")
print(f"Итого:{price * weight:>26}руб")
print(f"Внесено:{money:>24}руб")
print(f"Сдача:{money - (price * weight):>26}руб")
print("=" * 35)
print()
name = input('Введите наименование товара: ')
price = int(input('Введите Цену: '))
weight = int(input('Введите Количество: '))
cash = int(input('Сумма внесенных средств: '))
total = weight * price
print('=' * 16 + 'Чек' + '=' * 16)
print(f'Товар:{name:>29}')
#print(f'Цена:{weight:>19}кг * {price}руб/кг')
len_weight = len(str(weight)) # +
len_price = len(str(price)) # +
x = 30 - len_weight - len_price - 11 # +; 11 = 'кг * руб/кг'
space = ' ' # +
# ----------> vvvvvvvvv <----------------------------------------------------
print(f'Цена:{space * x}{weight}кг * {price}руб/кг')
print(f'Итого:{total:26}руб')
print(f'Внесено:{cash:>24}руб')
print(f'Сдача:{cash - total:>26}руб')
print('=' * 35)
print()

