Стоимость строки
В чеке также указано, сколько стоит каждая строка: цена одной штуки, умноженная на количество. Две буханки хлеба по $3 стоят $6.
Это вы посчитаете в новой функции line_total(item). Она получает один товар (один словарь) и с помощью return возвращает стоимость его строки. Зачем писать функцию ради одного умножения? Стоимость строки понадобится в двух местах: в чеке и в следующем упражнении, когда вы будете складывать весь заказ. А хорошее имя подсказывает, что означает код: line_total(item) понять легче, чем item["price"] * item["quantity"].
Помните разницу между return и print(): print() только показывает значение, а return отдаёт его коду, который вызвал функцию, и тот может с ним работать. Например, функцию можно вызвать прямо внутри фигурных скобок f-строки:
def double(number):
return number * 2
print(f"Дважды 4 будет {double(4)}")Дважды 4 будет 8Если бы double() печатала результат, а не возвращала его, программа напечатала бы 8 отдельной строкой, а в f-строку попало бы None — это то, что возвращает функция без return: Дважды 4 будет None.
Держите все функции вместе, между данными вверху и вызовом внизу. Новую напишите над print_receipt(), которая будет её использовать.
Задание
- 1
Под данными (над
print_receipt()) напишите функциюline_total(item), которая возвращает цену одной штуки товара, умноженную на его количество. - 2
В
print_receipt()добавьте в конец каждой строки стоимость строки, посчитанную с помощьюline_total():Хлеб: 2 x $3 = $6.