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的socket编程入门教程
Apr 23 Python
在Python中使用mechanize模块模拟浏览器功能
May 05 Python
python最长回文串算法
Jun 04 Python
Django model序列化为json的方法示例
Oct 16 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
Django 通过JS实现ajax过程详解
Jul 30 Python
python django 原生sql 获取数据的例子
Aug 14 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
Python如何使用ConfigParser读取配置文件
Nov 12 Python
Django haystack实现全文搜索代码示例
Nov 28 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中array_multisort对多维数组排序的方法
2020/06/21 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
详解python tkinter模块安装过程
2020/01/06 Python
Python连接mysql方法及常用参数
2020/09/01 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
化学学院毕业生自荐信范文
2013/12/17 职场文书
事业单位接收函
2014/01/10 职场文书
高二地理教学反思
2014/01/24 职场文书
秋游活动策划方案
2014/02/16 职场文书
经典安踏广告词
2014/03/21 职场文书
授权委托书样本
2014/04/03 职场文书
省文明单位申报材料
2014/05/08 职场文书
计算机软件专业求职信
2014/06/10 职场文书
新教师个人总结
2015/02/06 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP