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 multiprocessing模块中的Pipe管道使用实例
Apr 11 Python
Python NumPy库安装使用笔记
May 18 Python
Python numpy.array()生成相同元素数组的示例
Nov 12 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
python 堆和优先队列的使用详解
Mar 05 Python
详解python tkinter教程-事件绑定
Mar 28 Python
在python中将list分段并保存为array类型的方法
Jul 15 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
python按照list中字典的某key去重的示例代码
Oct 13 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
用Python实现屏幕截图详解
Jan 22 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
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
php基础学习之变量的使用
2011/06/09 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
php数组去重复数据示例
2014/02/25 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
python调用java的Webservice示例
2014/03/10 Python
Python函数中定义参数的四种方式
2014/11/30 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
python模拟事件触发机制详解
2018/01/19 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
创业计划书的写作技巧及要点
2014/01/31 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python