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 random模块常用方法
Nov 03 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
Python创建模块及模块导入的方法
May 27 Python
pygame加载中文名mp3文件出现error
Mar 31 Python
python中字符串类型json操作的注意事项
May 02 Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
如何爬取通过ajax加载数据的网站
Aug 15 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
发工资啦!教你用Python实现邮箱自动群发工资条
May 10 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
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
phpStorm2020 注册码
2020/09/17 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
2013/04/02 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
Vue实现移动端拖拽交换位置
2020/07/29 Javascript
Python获取当前路径实现代码
2017/05/08 Python
python使用zip将list转为json的方法
2018/12/31 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
物流管理专业应届生求职信
2013/11/21 职场文书
行政主管职责范本
2014/03/07 职场文书
10的分与合教学反思
2014/04/30 职场文书
三严三实心得体会范文
2014/10/13 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
党员个人年度总结
2015/02/14 职场文书
预备党员群众意见
2015/06/01 职场文书
锦旗赠语
2015/06/23 职场文书
教师岗位说明书
2015/09/30 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript