请完成程序设计中的自定义函数模块函数体中带填充部分,实现“双人成行,套餐9折”,即若饮品点2杯且甜点点2份,则总价在单价之和基础上*0.9,除此之外,总价按所点产品原价汇总计算。
时间: 2023-06-17 09:03:18 浏览: 105
假设我们已经有了一个点餐系统,能够记录每个顾客点的餐品和数量,并且已经定义了每种餐品的单价。现在我们需要编写一个函数来计算订单的总价,包括套餐9折的优惠。
我们可以先定义一个字典来记录哪些餐品是饮品,哪些是甜点:
```python
product_type = {
'coffee': 'drink',
'tea': 'drink',
'cake': 'dessert',
'cookie': 'dessert'
}
```
然后,我们遍历顾客点的每个餐品,计算总价。如果点了2杯饮品和2份甜点,就应用9折优惠。
```python
def calculate_total_price(order):
product_price = {
'coffee': 10,
'tea': 8,
'cake': 20,
'cookie': 15
}
product_count = {}
total_price = 0
for product in order:
if product in product_count:
product_count[product] += 1
else:
product_count[product] = 1
total_price += product_price[product]
if product_count.get('coffee', 0) >= 2 and product_count.get('cake', 0) >= 2:
total_price *= 0.9
return total_price
```
这个函数接受一个列表 `order`,其中包含了顾客点的所有餐品。我们先定义一个字典 `product_price` 来记录每种餐品的单价。然后定义一个空字典 `product_count` 来记录每种餐品点了几份。最后,遍历 `order`,更新 `product_count` 和 `total_price`。如果点了2杯饮品和2份甜点,就应用9折优惠。最后返回总价。
阅读全文