python实现盲盒抽奖功能(减库存)

 更新时间:2021年09月13日 11:10:04   作者:卿本佳人_奈何  
本文主要介绍了python实现盲盒抽奖功能,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

案例名称:盲盒抽奖

案例描述:
某比赛共设三个奖项,分别是:一等奖、二等奖、三等奖,
一等奖的奖品有三种选择:电饭煲、空调、洗衣机,
二等奖的奖品有三种选择:球鞋、手表、滑板,
三等奖的奖品有三种选择:对联、手袋、钙片

现需要编写一个函数,函数中设置一个参数,该参数用来接收对应奖项的字符串。
即:如果参数值等于‘一等奖',则返回对应奖项下可选择奖品的任意一个,从而实现盲盒抽取效果。
如果参数值的字符串不是一等奖、二等奖或者三等奖,则直接返回输入有误,没有该奖项字样。比如:参数值等于‘四等奖',则直接返回输入有误,没有该奖项。
当抽出奖项后,相应库存减一,如果奖项库存为零时,返回没有奖品了

代码实现如下:

#猜盲盒
import random
#用字典嵌套字典的形式存储所有奖品信息
w = {
    '一等奖': {
        '电饭煲': 2,
        '空调': 1,
        '洗衣机': 1
    },
    '二等奖': {
        '球鞋': 2,
        '手表': 5,
        '滑板': 3
    },
    '三等奖': {
        '对联': 4,
        '手袋': 2,
        '钙片': 3
    }
}


def lottery_plus(level=None):
    
    if level == '一等奖': 
        w_num = w.get('一等奖')  # 库存字典 {'电饭煲':2, '空调':1, '洗衣机':1}
        jackpot = []  # 奖池:谁的库存不为0进奖池 ['电饭煲','空调','洗衣机']
        # 谁的库存不为0进奖池
        for k in w_num.keys():  # 遍历['电饭煲','空调','洗衣机']
            if w_num.get(k) != 0:  # 如果库存不为0
                jackpot.append(k)  # 进奖池 [].append('电饭煲')
        try:
            result = random.choice(jackpot) #随机抽取一个奖品
            # 库存-1
            w.get('一等奖')[result] -= 1
            print('一等奖池:', end=' ')
            print(jackpot)
            return '恭喜获得一等奖' + result
        except:
            return '很遗憾,一等奖没有了'  #random.choice([]) 传入空的列表时会报错,列表为空时说明奖品已经都抽走了,所有奖品库存为零
        
    elif level == '二等奖':  
        w_num = w.get('二等奖')  
        jackpot = []  
        # 谁的库存不为0进奖池
        for k in w_num.keys():  
            if w_num.get(k) != 0:
                jackpot.append(k)  
        try:
            result = random.choice(jackpot)
            # 库存-1
            w.get('二等奖')[result] -= 1
            print('二等奖池:', end=' ')
            print(jackpot)
            return '恭喜获得二等奖' + result
        except:
            return '很遗憾,二等奖没有了'
        
    elif level == '三等奖': 
        w_num = w.get('三等奖')  
        jackpot = []  
        # 谁的库存不为0进奖池
        for k in w_num.keys():  
            if w_num.get(k) != 0: 
                jackpot.append(k)  
        try:
            result = random.choice(jackpot)
            # 库存-1
            w.get('三等奖')[result] -= 1
            print('三等奖池:', end=' ')
            print(jackpot)
            return '恭喜获得三等奖' + result
        except:
            return '很遗憾,三等奖没有了'
    else:
        return '没有获奖'

下面是调用函数的结果:

到此这篇关于python实现盲盒抽奖功能(减库存)的文章就介绍到这了,更多相关python 盲盒抽奖内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pandas中DataFrame.drop()函数的具体使用

    Pandas中DataFrame.drop()函数的具体使用

    DataFrame.drop是Pandas库中一个非常实用的函数,用于删除 DataFrame中的行或列,本文就来介绍一下Pandas中DataFrame.drop()函数的具体使用,感兴趣的可以了解一下
    2024-07-07
  • 20行python代码的入门级小游戏的详解

    20行python代码的入门级小游戏的详解

    这篇文章主要介绍了python入门级小游戏,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Python xlrd模块导入过程及常用操作

    Python xlrd模块导入过程及常用操作

    这篇文章主要介绍了Python xlrd模块导入过程及常用操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 深入理解Python虚拟机中复数(complex)的实现原理及源码剖析

    深入理解Python虚拟机中复数(complex)的实现原理及源码剖析

    在本篇文章当中主要给大家介绍在 cpython 虚拟机当中是如何实现 复数 complex 这个数据类型的,这个数据类型在 cpython 当中一应该是一个算比较简单的数据类型了,非常容易理解
    2023-03-03
  • Python脚本实现Zabbix多行日志监控过程解析

    Python脚本实现Zabbix多行日志监控过程解析

    这篇文章主要介绍了Python脚本实现Zabbix多行日志监控过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Python基础之条件语句详解

    Python基础之条件语句详解

    今天给大家带来的是关于Python基础的一些知识,文章围绕着Python条件语句展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Python实现计算图像RGB均值方式

    Python实现计算图像RGB均值方式

    这篇文章主要介绍了Python实现计算图像RGB均值方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 集调试共享及成本控制Prompt工具PromptLayer使用指南

    集调试共享及成本控制Prompt工具PromptLayer使用指南

    这篇文章主要介绍了集调试共享及成本控制Prompt工具PromptLayer使用指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 五个方便好用的Python自动化办公脚本的实现

    五个方便好用的Python自动化办公脚本的实现

    在没有人工干预的情况下,机器可以自己完成各项任务,这大大提升了工作效率。Python因为语法简洁易懂,而且有丰富的第三方工具库,所以非常适合编写自动化脚本,本文就为大家带来了五个这样的脚本,需要的可以参考一下
    2022-01-01
  • Python制作Windows按键通知脚本

    Python制作Windows按键通知脚本

    对于键盘没有背光灯的同学而言,切换大小写或控制Num键开关的时候没有提示,经常需要试探性地输入一些字符来判断开关是否打开,体验非常糟糕。所以本文就来用Python做一个Windows按键通知脚本,需要的可以参考一下
    2022-11-11

最新评论