新闻动态

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

发布日期:2022-01-04 13:42 | 文章来源:脚本之家

案例名称:盲盒抽奖

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

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

代码实现如下:

#猜盲盒
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 盲盒抽奖内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部