python3实现点餐系统

 更新时间:2019年01月24日 12:01:22   作者:响神  
这篇文章主要为大家详细介绍了python3实现点餐系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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()

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解pandas删除缺失数据(pd.dropna()方法)

    详解pandas删除缺失数据(pd.dropna()方法)

    这篇文章主要介绍了pandas删除缺失数据(pd.dropna()方法),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • python数据抓取3种方法总结

    python数据抓取3种方法总结

    这篇文章主要给大家介绍了关于python数据抓取的3种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • python将pandas datarame保存为txt文件的实例

    python将pandas datarame保存为txt文件的实例

    今天小编就为大家分享一篇python将pandas datarame保存为txt文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 基于Python实现配置热加载的方法详解

    基于Python实现配置热加载的方法详解

    所谓的配置热加载,也就是说当服务收到配置更新消息之后,我们不用重启服务就可以使用最新的配置去执行任务。本文将介绍如何用Python实现配置热加载,需要的可以参考一下
    2022-07-07
  • Anaconda安装pytorch及配置PyCharm 2021环境

    Anaconda安装pytorch及配置PyCharm 2021环境

    小编使用的是python3.8版本,为了防止访问量过大导致http连接失败,所以采用本地安装,具体安装方法本文给大家详细介绍,在文章底部给大家提到了PyCharm 2021配置环境的方法,感兴趣的朋友一起看看吧
    2021-06-06
  • python多进程实现进程间通信实例

    python多进程实现进程间通信实例

    这篇文章主要介绍了python多进程实现进程间通信实例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Pytorch之finetune使用详解

    Pytorch之finetune使用详解

    今天小编就为大家分享一篇Pytorch之finetune使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python实例一个类背后发生了什么

    Python实例一个类背后发生了什么

    Python实例一个类背后发生了什么,本文为大家一一列出,感兴趣的朋友可以参考一下
    2016-02-02
  • Python使用广度优先搜索遍历混乱地铁问题

    Python使用广度优先搜索遍历混乱地铁问题

    这篇文章主要介绍了Python使用广度优先搜索遍历混乱地铁问题,广度优先搜索算法(又称宽度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型,需要的朋友可以参考下
    2023-04-04
  • python 判断文件或文件夹是否存在

    python 判断文件或文件夹是否存在

    这篇文章主要介绍了python 判断文件或文件夹是否存在,Python 操作文件时,我们一般要先判断指定的文件或目录是否存在,不然容易产生异常,下面我们就来学习如何利用python检查文件是否存在吧
    2022-03-03

最新评论