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()函数的具体使用
DataFrame.drop是Pandas库中一个非常实用的函数,用于删除 DataFrame中的行或列,本文就来介绍一下Pandas中DataFrame.drop()函数的具体使用,感兴趣的可以了解一下2024-07-07深入理解Python虚拟机中复数(complex)的实现原理及源码剖析
在本篇文章当中主要给大家介绍在 cpython 虚拟机当中是如何实现 复数 complex 这个数据类型的,这个数据类型在 cpython 当中一应该是一个算比较简单的数据类型了,非常容易理解2023-03-03集调试共享及成本控制Prompt工具PromptLayer使用指南
这篇文章主要介绍了集调试共享及成本控制Prompt工具PromptLayer使用指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-03-03
最新评论