要求
- 定义菜单,字典格式{披萨种类名称:原材料};
- 给顾客展示菜单,并让顾客输入选择,加入判断语句检查顾客是否输入正确;
- 问顾客是否额外需要添加材料;
- 让顾客确认菜单;
分步实现
- 定义一个字典类型“menu”,存放我们的披萨种类和原料;
定义一个字符串数组“add_menu”,存放可添加的食材;
menu = { "香甜玉米披萨" :"菠萝、玉米、沙拉酱",
"奥尔良鸡肉披萨" :"秘制奥尔良鸡肉、青椒、洋葱、进口芝士",
"超级至尊披萨" :"培根、火腿、鸡肉、牛肉粒、青椒、玉米、洋葱、黑橄榄、芝士"}
add_menu = ['芝士','洋葱','培根','榴莲','火腿']
- 展示菜单
print("本店的菜单如下:")
print(menu)
运行结果:
本店的菜单如下:
{‘香甜玉米披萨’: ‘菠萝、玉米、沙拉酱’, ‘奥尔良鸡肉披萨’: ‘秘制奥尔良鸡肉、青椒、洋葱、进口芝士’, ‘超级至尊披萨’: ‘培根、火腿、鸡肉、牛肉粒、青椒、玉米、洋葱、黑橄榄、芝士’}
- 让顾客输入选择
order = input("请输入您想要的披萨:")
- 判断顾客的点单是否正确
我们可以使用语句“order in menu.keys()”来判断输入的“order”是否在“menu”的“key”属性里。如果在的话,语句将会返回“True”,否则返回“False”。 因此我们可以利用 if语句 来判断输入是否正确,不正确的话就重新输入。
if order in menu.keys():
print("您的点单正确!")
else:
order = input("您输入的披萨名称有误! 请您重新输入:")
但是其中存在一个问题,这一条 if语句 仅能判断一次正误,假如顾客第二次点单时仍然输入错误的披萨名称,后续流程仍是无法进行的。
因此,我们可以使用 while()循环,直到顾客输入的披萨名称在我们的菜单内(如果输入不在我们的菜单内,则一直执行点单流程,否则,不作处理。):
while(order not in menu.keys()):
order = input("您输入的披萨名称有误! 请您重新输入:")
- 询问顾客对添加食材的需求
直接使用 if语句 来判断顾客需求,如果需要添加,则展示可添加菜单,并让用户输入想要添加的食材,否则不作处理:
temp = input("请问您是否想要继续添加材料?[是/否]")
if temp == '是':
print("可供添加的食材菜单如下:")
print(add_menu)
add = input("请输入您想要添加的食材:")
- 订单确认
当完成上述全部流程后,进行订单确认,可以展示“披萨名称”、“披萨原材料”、“添加的食材”(未选择添加则不展示)。在此,我们选择格式化输出使其更加规范:
print("您所点的 “{ordering}”,它的原料为:{material},添加的食材为:{addition}。"
.format(ordering=order, material=menu.get(order),addition=add))
print("您所点的 “{ordering}”,它的原料为:{material}。"
.format(ordering=order, material=menu.get(order)))
完整代码
menu = { "香甜玉米披萨" :"菠萝、玉米、沙拉酱",
"奥尔良鸡肉披萨" :"秘制奥尔良鸡肉、青椒、洋葱、进口芝士",
"超级至尊披萨" :"培根、火腿、鸡肉、牛肉粒、青椒、玉米、洋葱、黑橄榄、芝士"}
add_menu = ['芝士','洋葱','培根','榴莲','火腿']
print("本店的菜单如下:")
print(menu)
order = input("请输入您想要的披萨:")
while(order not in menu.keys()):
order = input("您输入的披萨名称有误! 请您重新输入:")
temp = input("请问您是否想要继续添加材料?[是/否]")
if temp == '是':
print("可供添加的食材菜单如下:")
print(add_menu)
add = input("请输入您想要添加的食材:")
print('[订单确认]')
print("您所点的 “{ordering}”,它的原料为:{material},添加的食材为:{addition}。"
.format(ordering=order, material=menu.get(order),addition=add))
else:
print("您所点的 “{ordering}”,它的原料为:{material}。"
.format(ordering=order, material=menu.get(order)))
print("后厨已收到您的订单,请稍等,祝您 用餐愉快!")
运行结果
本店的菜单如下:
{‘香甜玉米披萨’: ‘菠萝、玉米、沙拉酱’, ‘奥尔良鸡肉披萨’: ‘秘制奥尔良鸡肉、青椒、洋葱、进口芝士’, ‘超级至尊披萨’: ‘培根、火腿、鸡肉、牛肉粒、青椒、玉米、洋葱、黑橄榄、芝士’}
请输入您想要的披萨:奥利给
您输入的披萨名称有误! 请您重新输入:老八秘制小汉堡
您输入的披萨名称有误! 请您重新输入:奥尔良鸡肉披萨
请问您是否想要继续添加材料?[是/否]是
可供添加的食材菜单如下:
[‘芝士’, ‘洋葱’, ‘培根’, ‘榴莲’, ‘火腿’]
请输入您想要添加的食材:培根、洋葱
[订单确认]
您所点的 “奥尔良鸡肉披萨”,它的原料为:秘制奥尔良鸡肉、青椒、洋葱、进口芝士,添加的食材为:培根、洋葱。
后厨已收到您的订单,请稍等,祝您 用餐愉快!