黄焖鸡

代码

# 商品属性
ITEM = {‘ITEM0001‘: {‘name‘: ‘黄焖鸡‘, ‘price‘: 18},
        ‘ITEM0013‘: {‘name‘: ‘肉夹馍‘, ‘price‘: 6},
        ‘ITEM0022‘: {‘name‘: ‘凉皮‘, ‘price‘: 8}
        }

# 打折商品列表
DISCOUNT_ITEM = (‘ITEM0001‘, ‘ITEM0022‘)

# 满减优惠列表
BREAK_DISCOUNT = {30: 6}
BREAK_PRICE_LIST = [30]

# 打折优惠力度
CHARGE_PERCENT = 0.5

def bestCharge(order=None):
    """
    接收用户选择的菜品和数量, 计算汇总信息
    :param order:       list        用户订单数据
    """
    # 指定菜品半价(黄焖鸡,凉皮),省13元
    totle_price = 0  # 商品总价
    sale_price = 0  # 特定商品打折金额
    order_menu = []
    discount_names = []

    for line in order:
        item, num = line.split(‘ x ‘)
        price = ITEM[item][‘price‘]
        name = ITEM[item][‘name‘]
        item_pay = int(num) * price
        totle_price += item_pay
        out_str = ‘{} x {} = {}元‘.format(name, num, item_pay)
        order_menu.append(out_str)

        if item in DISCOUNT_ITEM:
            sale_price += price * CHARGE_PERCENT
            discount_names.append(name)

    break_discount_price = 0
    break_menu_str = ‘‘

    # 判断最优的满减额度
    for break_price in BREAK_PRICE_LIST:
        if break_price <= totle_price:
            break_discount_price = BREAK_DISCOUNT.get(break_price)
            break_menu_str = ‘满{}减{}元,省{}元‘.format(break_price, break_discount_price, break_discount_price)
            break
    # 输出结果
    chargeOut(break_discount_price, sale_price, order_menu, discount_names, break_menu_str, totle_price)

def chargeOut(break_discount_price, sale_price, order_menu, discount_names, break_menu_str, totle_price):
    """
    结果输出函数, 选取最优的优惠方式,两种优惠方式省钱一样多,使用满减优惠方式
    :param break_discount_price:    int         满减优惠总价
    :param sale_price:              int         打折商品优惠总价
    :param order_menu:              list        用户订单明细列表
    :param discount_names:          list        打折商品名称列表
    :param break_menu_str:          str         满减商品明细
    :param totle_price:             int         商品原价
    :return:
    """
    print(‘============= 订餐明细 =============‘)
    # 输出明细
    for line in order_menu:
        print(line)
    print(‘-----------------------------------‘)
    if break_discount_price == sale_price == 0:
        discount = 0
    elif break_discount_price >= sale_price:
        print(break_menu_str)
        discount = break_discount_price
        print(‘-----------------------------------‘)
    else:
        names = ‘,‘.join(discount_names)
        discount = sale_price
        print("""使用优惠:\n指定菜品半价({}),省{}元""".format(names, int(sale_price)))
        print(‘-----------------------------------‘)
    real_pay = totle_price - discount
    print(‘总计:{}元‘.format(int(real_pay)))
    print(‘===================================‘)

if __name__ == ‘__main__‘:
    order = ["ITEM0013 x 5", "ITEM0022 x 1"]
    # order = ["ITEM0013 x 4", "ITEM0022 x 1"]
    # order = ["ITEM0013 x 4"]
    # order = ["ITEM0001 x 1", "ITEM0013 x 2", "ITEM0022 x 1"]
    bestCharge(order)

原文地址:https://www.cnblogs.com/jiuyang/p/12375390.html

时间: 2024-11-08 02:43:18

黄焖鸡的相关文章

如何写出《黄焖鸡米饭是怎么火起来的》这样的文章

去年开始研究做爬虫,搞了一套分布式的爬虫系统,主要目标是帮别人做数据采集.后来看到黄焖鸡米饭是怎么火起来的? - 何明科的回答,进而关注了<数据冰山>,发现里面的大数据分析的文章都相当有意思,图表也一个比一个专业. 我当时的表情大约是这样的: 我的天哪,这么神奇吗? 放下手机,操起键盘,正准备也搞上一篇 "大数据分析:郭德纲和女演员的相爱相杀之后,wuli涛涛是如何火起来的".后来转念一想,这不是赤果果的抄袭了,妈妈是怎么教导我的.再说了,以我这样的实力,写了这样的文章,以

今天把饭倒进黄焖鸡里,同桌上楼就拉肚子

今天把饭倒进黄焖鸡里,同桌上楼就拉肚子 今日主要内容 1. 文件操作 open() 文件句柄 open()打开一个文件, 获取的是文件句柄 read() readline() readlines() write() for line in f: 遍历文件中的内容 路径的问题: 1. 绝对路径 从磁盘根目录寻找 2. 相对路径 从当前程序运行的文件夹内寻找 2. 文件操作的相关模式Mode r: 只读 w: 只写 a: 追加 r+: w+: a+: 非文本文件 rb wb ab r+b w+b a

【IT界的厨子】家常版本的黄焖鸡

前言: 周末在家,闲来无事, 使用简单的食材,满足家人的味蕾,做出秒杀馆子的黄焖鸡(我是这么认为的).虽然没有厨师的手艺,但为家人做饭,也是一种幸福. 用料: 主料:老母鸡一只,要求店老板剁好 配料: 土豆       一只   姜片       若干   青椒       一只 可选:  辣椒      我家有孩子,不能吃辣,此项列为可选 调料: 老抽,生抽,盐,白糖,料酒 步骤: 1.老母鸡洗净血水  2.姜切片 3.香菇切片,青椒切条状         4.炒糖色(sha 三音),凉油放糖

【菜逼实战】黄焖鸡计算器

一.做个啥?? 计算器大概长这个模样,作用一目了然.. 就是一个简单的计算+显示.毕竟刚学,第1次独立小练习,啥玩意儿封装继承多态,我是统统不考虑,先实现了再说. 二.遇到的坑 功能很简单,基本没什么坑textbox的text,变成double值,再计算.然后,把计算结果(double)再变回string,显示给个人计算的lable.text前半部分简单,但是后半部分,出现了一个错误:然后开始查,其他类型转换成string的方法,然后找到了一个新的方法: 但是,总觉得可以直接用ToString的

淘宝客知道这几个ID,收入将会提高50%

基础问题天天说,天天有人问.这篇文章写点基础的.特别对新手的帮助会很大哦. 1,PID,做淘宝客不知道PID,赚到钱也会被冻结. 如何手动获取PID 2,单品ID,淘宝商品的唯一识别编号,和身份证一样,每个商品都有个唯一的编号 天猫的 https://detail.tmall.com/item.htm?id=520105375809&ali_refid=a3_430583_1006:1103424533:N:%E4%B8%93%E4%B8%9A%E6%B3%B3%E8%A1%A3%E5%A5%B

Java 8 : Stream API 练习

//店铺属性类 public class Property { String name; // 距离,单位:米 Integer distance; // 销量,月售 Integer sales; // 价格,这里简单起见就写一个级别代表价格段 Integer priceLevel; public Property(String name, int distance, int sales, int priceLevel) { this.name = name; this.distance = di

再见北京,在浓浓的夏天

======================================= 再见北京,在浓浓的夏天 ======================================= <浓浓的雷暴雨> -------------------------------------------------------------- 昨天的一场暴雨,中午的突然晴朗,晚上的雷声震震. 我撑着伞告别西二旗的地铁站, 那里是很多忙碌的人每天要经过的地方, 经过这里,去上班的忙碌的人们: 经过这里,疲惫的回到

Android学习笔记之横向二级菜单实现

PS:元旦来一发. 学习内容: 1.Android二级横向菜单的实现过程.效果如上图...   这种横向的二级菜单在很多的app都有所应用.效果看起来还是非常的美观的.也算是项目需要,自己也就学了一下这个效果,首先说一下逻辑.实现的方式其实并不是很难..只不过逻辑上可能有点复杂.原理其实就是一个按钮.当触发按钮的时候弹出PopWindow.PopWindow由两个ListView构成..对两个ListView适当的适配.就可以实现这个效果了..   实现这种效果可以有两种不同的方式..一种是直接

ASP.NET MVC4+BootStrap 实战(十一)

最近一天真的都不知道自己在忙什么,当了回Scrum Master.给自己的感觉就是像大学时期,饭堂经理看员工给学生打饭太慢,自己抡起大勺子给学生打菜,偶尔有些学生有情绪还要忍着.说到饭堂,最近都不知道该吃啥.黄焖鸡,biangbiang面,镇川碗托,麻辣香锅,自助餐都吃的没啥可吃了.偶尔咥一碗麦利鸡汤刀削面或者米线凉皮沙县.不说了,这会也确实有些饿,洗个苹果吃一下. 上面这一碗就是我经常吃的biangbiang面. 今天我们主要是来看一下新闻链接的修改和新增,先上图,无图无真相. 看到了吧,这个