python3实现点餐系统
作者:响神 发布时间:2023-04-30 19:06:55
标签:python,点餐系统
本文实例为大家分享了python3实现点餐系统的具体代码,供大家参考,具体内容如下
题目:
某餐厅外卖每天更新菜品,但是搭配价格是不变的,具体如下:
"今天菜单如下","1 宫保鸡丁","2 青椒鸡米粒" ,"3 白萝卜焖肉", "4 蒜薹腊肉", "5 豆腐包肉 ",
"6 鲤鱼跃龙门", "7 凉拌莲藕", "8 红烧南瓜", "9 大白菜", "10 青菜", "11 荷包蛋(另加2元)", "12 蛋炒饭(10元)"
一荤一素10,两素菜9元,一荤两素11,,三素菜10,两荤菜12,两荤一素13,两荤两素14,两荤三素15元
现在需要求取用户输入选择菜品的编号,求取需要支付的价格
代码:
#coding UTF-8
# version = version_1_2
today_menu = ["今天菜单如下","1 宫保鸡丁","2 青椒鸡米粒" ,"3 白萝卜焖肉", "4 蒜薹腊肉", "5 豆腐包肉 ",
"6 鲤鱼跃龙门", "7 凉拌莲藕", "8 红烧南瓜", "9 大白菜", "10 青菜", "11 荷包蛋(另加2元)", "12 蛋炒饭(10元)"]
price =[0,0,12,0,0 ,10 ,13,0,9,11,14,0,10,0,15,0]
def getTodayMenu():
return today_menu
def showTodayMenu(interable):
for today_menu_details in today_menu :
print(today_menu_details)
def showCombineNote():
print("提示:一荤一素10,两素菜9元,一荤两素11,,三素菜10,两荤菜12,两荤一素13,两荤两素14,两荤三素15元")
print("请输入您点餐的编号,编号之间用逗号分开,不同份数之间用空格隔开\n例如输入1,9,10 2,6,8 3,10,谢谢 : ")
def dealWithUserInput():
user_choise = input()
user_choise_list = user_choise.split()
price_total = 0#用price_total来记录所点菜的总和
price_one = 0#用来计算每一份菜的价格
choosed_list = []
pay_total = 0 #用来保存优惠后需要支付的价格
for one_order in user_choise_list :
count_i = count_j =0 #count_i用来保存素菜的个数count_j用来保存混菜的个数
hebaodan = 0#用来记录荷包蛋的个数
danchaofan = 0#用来记录蛋炒饭的个数
one_order_list = one_order.split(",")#one_order_list 保存的是["1","9","10]
for menu_item in one_order_list :#menu_item就是保存的单个的数字
#首先得防止用户输入的不是数字,是数字则处理,不是则提示用户重新输入
if menu_item.strip().isdigit():
#这里防止用户输入的时候跟预期的不一样,可能多了一些空格,所以需要去掉空格后转化为数字
if int(menu_item.strip()) <7:
count_j += 1
elif int(menu_item.strip()) <11:
count_i += 1
elif int(menu_item.strip()) == 11:
hebaodan += 1
elif int(menu_item.strip()) == 12:
danchaofan += 1
choosed_list.append(int(menu_item))
else:
print("您输入的有非数字类型,请重新运行程序,谢谢")
exit()
choosed_list.append(0)
#如果是正确的组合,则price[count_i*4 + count_j]是不会为0的,但是输入一个数字代表特色菜品的时候也是可行的
#两种组合都不是的时候就证明不是正确的组合,程序退出
if price[count_i*4 + count_j] ==0 and "12" not in one_order:
print("您输入的不是一个正确的组合,请重新运行程序,谢谢")
exit()
else:
price_one= price[count_i*4 + count_j] + hebaodan *2 + danchaofan * 10
price_total += price_one
#根据计算得到的总需要支付的价格,判断享受哪种优惠,得出优惠后的价格
if price_total >=30:
pay_total = price_total - 4
elif price_total >=26:
pay_total = price_total - 3
elif price_total >=20:
pay_total = price_total - 2
else:
pay_total = price_total
print("您预订了 %d 份美食,具体如下: " % len(user_choise_list))
for choosed_item in choosed_list :
if choosed_item == 0:
print()
else:
print(today_menu[choosed_item])
print("您共需要支付 %d 元,谢谢" % pay_total)
print("欢迎进入点餐系统")
today_menu = getTodayMenu()
showTodayMenu(today_menu)
showCombineNote()
dealWithUserInput()
更多学习资料请关注专题《管理系统开发》。
来源:https://blog.csdn.net/weixin_41661393/article/details/80370091
0
投稿
猜你喜欢
- 本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的陷阱重现我们就用实际的举例来演示我们今天所
- 目录1.爬虫文件2.items.py3.pipelines.py4.进行持久化存储之前我们使用lxml对梨视频网站中的视频进行了下载,感兴趣
- Python通过命令提示符安装matplotlib:1.直接打开命令提示符(快捷键窗口+ r)2.若提示安装失败(Python - 您正在使
- 对于map()它的原型是:map(function,sequence),就是对序列sequence中每个元素都执行函数function操作。
- 大家都知道对于一个页面来说,最基本的结构呢就是<html> <head> <!-- 头部信息内容区域
- 一、总结(点击显示或隐藏总结内容)一句话总结:xlwings 是 Python 中操作Excel的一个第三方库,支持.xls读写,.xlsx
- 目录1. 前言2. 准备3. 实战1、获取目标应用的包名及初始化 Activity2、获取所有在线的设备3、群控打开目标应用4、封装执行步骤
- 分享一下 IntelliJ IDEA 2021.1 的激活破解教程,相当于永久激活了,亲测有效,下面是详细文档哦~申明:本教程 Intell
- 本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下```name_list = [] # 存储学生信息字典,学
- 最近打算在win系统下使用pycharm开发程序,并远程连接服务器调试程序,其中在import tensorflow时报错如图所示(在远程服
- python去除字符串最后的换行符‘\n’s = s.replace('\n',
- 技巧1XmlNode.InnerText与.InnerXml的区别是:前者将内容中的<和>分别变成<和>,因此,希望
- 一般事件事件浏览器支持描述onClickHTML: 2 | 3 | 3.2 |
- 为了将excel数据自动转换成所需要的erlang数据,听同事说使用python会很方便简单,就自学了两天python,写了一个比较粗糙的p
- 目录前言1. 使用Lambda来修改Pandas数据框中的值2. 使用f-string来连接字符串3. 用Zip()函数对多个列表进行迭代4
- 介绍当在图像上训练深度神经网络模型时,通过对由数据增强生成的更多图像进行训练,可以使模型更好地泛化。常用的增强包括水平和垂直翻转/移位、以一
- 模板过滤器定义:在变量输出时对变量的值进行处理作用:可以通过使用过滤器来改变变量的输出显示语法:{{变量 | 过滤器:'参数值1
- 1. 信号与槽(Signals and slots)信号与槽机制是 PyQt 的核心机制,用于对象之间的通信,也就是实现函数之间的自动调用。
- 通常在多个不等式的时候,需要分着写,比如x = 1if x>0 and x<3: print(True)但是在Python中居然
- Css3引入了新的盒模型——弹性盒模型,该模型决定一个盒子在其他盒子中的分布方式以及如何处理可用的空间。这与XUL(火狐使用的用户交互语言)