python3实现点餐系统


Posted in Python onJanuary 24, 2019

本文实例为大家分享了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()

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python判断windows系统是32位还是64位的方法
May 11 Python
Python 通过pip安装Django详细介绍
Apr 28 Python
python爬虫基本知识
Mar 05 Python
django 在原有表格添加或删除字段的实例
May 27 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
使用python Telnet远程登录执行程序的方法
Jan 26 Python
python进程和线程用法知识点总结
May 28 Python
这可能是最好玩的python GUI入门实例(推荐)
Jul 19 Python
python sorted函数原理解析及练习
Feb 10 Python
Python urllib库如何添加headers过程解析
Oct 05 Python
Python importlib模块重载使用方法详解
Oct 13 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 Python
使用Python批量修改文件名的代码实例
Jan 24 #Python
Python并发:多线程与多进程的详解
Jan 24 #Python
python用opencv批量截取图像指定区域的方法
Jan 24 #Python
python+pyqt5实现KFC点餐收银系统
Jan 24 #Python
Python微医挂号网医生数据抓取
Jan 24 #Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 #Python
几行Python代码爬取3000+上市公司的信息
Jan 24 #Python
You might like
php获取发送给用户的header信息的方法
2015/03/16 PHP
php动态函数调用方法
2015/05/21 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
javascript实现的listview效果
2007/04/28 Javascript
用JS剩余字数计算的代码
2008/07/03 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
python根据出生日期获得年龄的方法
2015/03/31 Python
Python读csv文件去掉一列后再写入新的文件实例
2017/12/28 Python
Python八皇后问题解答过程详解
2019/07/29 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
softmax及python实现过程解析
2019/09/30 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
python 利用toapi库自动生成api
2020/10/19 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
nohup的用法
2014/08/10 面试题
竞选班长演讲稿
2013/12/30 职场文书
11月升旗仪式讲话稿
2014/02/15 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
化验员岗位职责
2015/02/14 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
mysql部分操作
2021/04/05 MySQL
Redis数据同步之redis shake的实现方法
2022/04/21 Redis
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python