Dish = namedtuple('Dish', 'name price calories')
da = Dish("Mac N' Cheese", 8.00, 750)
db = Dish('Grilled Cheese', 6.50, 500)
dc = Dish('Hamburger', 9.50, 1000)
dd = Dish('Caeser Salad', 8.25, 650)
de = Dish('Fish Tacos', 11.25, 1150)
DL = [ da, db, dc, dd, de ]
мне нужно изменить цену всех элементов DL на определенный процент, но функции я писал только возвращает деВозврат только возвращение последнего пункта
def Dishlist_change_price(DL: list, percentage: float) -> list:
result = [ ]
x = percentage/100
for i in DL:
y = i.price + (i.price * x)
result = i._replace(price = y)
return result
Что плохого в коде для него чтобы вернуть только последнее блюдо? Метод
Minor боковой примечание: Определение 'х = 1 + процент/100', то' у = i.price * x' упростит код и уменьшит ошибку с плавающей запятой. Конечно, с плавающей точкой - ужасный тип данных для финансовых данных; переключение на 'decimal.Decimal' или, по крайней мере, изменение на' y = round (i.price * x, 2) ', вы получите целые цента вместо частичных пенни с растущей ошибкой, поскольку вы многократно корректируете цены. – ShadowRanger