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 EOL while scanning string literal问题解决方法
Sep 18 Python
Python数据类型详解(一)字符串
May 08 Python
python 异常处理总结
Oct 18 Python
Python正则表达式分组概念与用法详解
Jun 24 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
python爬虫可以爬什么
Jun 16 Python
python3.8动态人脸识别的实现示例
Sep 21 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
Sep 26 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 Python
Python实现天气查询软件
Jun 07 Python
Python绘制散乱的点构成的图的方法
Apr 21 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使用正则过滤js脚本代码实例
2014/05/10 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
js代码实现微博导航栏
2015/07/30 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
js实现表格数据搜索
2020/08/09 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
利用Python开发微信支付的注意事项
2016/08/19 Python
python模块之re正则表达式详解
2017/02/03 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
python 实现屏幕录制示例
2019/12/23 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
Python celery原理及运行流程解析
2020/06/13 Python
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
TCP/IP的分层模型
2013/10/27 面试题
1亿有多大教学反思
2014/05/01 职场文书
温馨提示标语
2014/06/26 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
MySQL视图概念以及相关应用
2022/04/19 MySQL