大学生刘海在唐人街开了一间餐馆,把汉字菜单翻译成英文如下: The menu of the restaurant is as follows: Cucumber with mashed garlic 6 yuan, Peanuts 6 yuan, Stir fried pork with green pepper 28 yuan, Tomatoes and eggs 18 yuan, Braised pork 38 yuan, Grilled fish 30 yuan, Shredded chicken 45 yuan, Kelp ribs 35 yuan, Cabbage 12 yuan, Sanxian soup 15 yuan。 请编程帮助刘海点菜和结账。要求: (1)自定义函数order(*dish)实现点菜 (2)形参为可变参数,实参为2个菜名,返回值为2个菜的总价,如总价高于50元,则打八折。 (3)分别输入2个菜名,作为实参传入order。
时间: 2024-03-11 18:47:31 浏览: 167
好的,根据你的要求,可以编写一个点菜和结账的程序。具体实现如下:
```python
menu = {
"Cucumber with mashed garlic": 6,
"Peanuts": 6,
"Stir fried pork with green pepper": 28,
"Tomatoes and eggs": 18,
"Braised pork": 38,
"Grilled fish": 30,
"Shredded chicken": 45,
"Kelp ribs": 35,
"Cabbage": 12,
"Sanxian soup": 15
}
def order(*dish):
total_price = 0
for d in dish:
if d in menu:
total_price += menu[d]
else:
print("菜单中没有 %s 这道菜!" % d)
if total_price > 50:
total_price *= 0.8
return total_price
# 测试代码
dish1 = input("请输入第一道菜名:")
dish2 = input("请输入第二道菜名:")
total_price = order(dish1, dish2)
print("您点的两道菜的总价为:%d 元" % total_price)
```
以上代码中,我们首先定义了一个`menu`字典,将菜名和价格进行了映射。然后编写了一个名为`order`的函数来实现点菜和结账。在函数中,我们使用了可变参数`*dish`,表示可以接受任意数量的菜名,然后根据菜单中的价格计算出总价。如果总价超过50元,则打八折。最后返回总价。
在测试代码中,我们使用`input()`函数来获取用户输入的两道菜名,并将它们作为实参传递给`order`函数。最后再输出总价。
阅读全文