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实现ftp客户端示例分享
Feb 17 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
Python网络编程之TCP套接字简单用法示例
Apr 09 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
为什么说Python可以实现所有的算法
Oct 04 Python
python 协程 gevent原理与用法分析
Nov 22 Python
Python 实现try重新执行
Dec 21 Python
python实现按关键字筛选日志文件
Dec 24 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
Python Django搭建网站流程图解
Jun 13 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 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
用session做客户验证时的注意事项
2006/10/09 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
Python3 replace()函数使用方法
2018/03/19 Python
Django model反向关联名称的方法
2018/12/15 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
护士自我介绍信
2014/01/13 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
个人工作决心书
2015/09/22 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers