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 相关文章推荐
Python3实现的腾讯微博自动发帖小工具
Nov 11 Python
跟老齐学Python之网站的结构
Oct 24 Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
Python中操作符重载用法分析
Apr 29 Python
Python 数据结构之队列的实现
Jan 22 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
Django之Mode的外键自关联和引用未定义的Model方法
Dec 15 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
phpstrom使用xdebug配置方法
2013/12/17 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
Python运维开发之psutil库的使用详解
2018/10/18 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
Python实现代码统计工具
2019/09/19 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
大学生求职中的自我评价
2013/10/01 职场文书
会计专业自我鉴定范文
2013/10/06 职场文书
管理专员自荐信
2014/01/26 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
测绘工程专业求职信
2014/07/15 职场文书
物流管理专业推荐信
2014/09/06 职场文书
大一新生检讨书
2014/10/29 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL