练习 | 用python写个抽奖程序

大家好,我是36度道,人生苦短,我用python~

今天写了个 “抽奖” 的一个小练习,巩固下知识点, 在此记录下来。

本次 “ 抽奖 ” 练习,只用了一个random库,用于从多个奖品中随机获取一个,所以先导入这个库

import random

然后分别设置下一、二、三等奖以及对应的奖品和奖品对应的库存

reward_info = {
    '一等奖': {'空调': 1, '洗衣机': 2, '扫地机': 3},
    '二等奖': {'保温杯': 2, '热水壶': 3, '电饭锅': 2},
    '三等奖': {'笔记本': 2, '书包': 2, '枕头': 3}
}

接着就是抽奖的核心代码,我将它封装在了一个函数里面

def random_reward(reward):

    if reward not in reward_info.keys(): 
        print('很遗憾,没有该奖项!')
    
    else:
    	# 获取该奖项的所有奖品
        goods = reward_info[reward] 
        
        # 判断是否还有奖品,没有的话就终止函数,不在继续执行后面的内容
        if not goods:
            print('很遗憾,%s 的奖品已抽完!' % reward)
            return None
            
        # 随机获取一个奖品
        reward_content = random.choice(list(goods.keys())) 
        print('恭喜抽中:%s' % reward_content)
        
        # 因为已经抽中,所以库存要减一
        reward_info[reward][reward_content] -= 1 
		
		# 库存减去后 判断下剩余库存是否为0,如果为0, 则在reward_info中删除该奖品
        if reward_info[reward][reward_content] == 0: 
            del reward_info[reward][reward_content]
        
        # 删完奖品后 判断下 该奖项是否还有奖品,如果没有奖品,则终止函数
        if not reward_info[reward]: 
            print('%s 的奖品已抽完!' % reward)
            return None
        
        # 如果还有奖品,就显示给用户看
        print('%s 的奖品还剩 %s' % (reward, str(reward_info[reward])))

最后就是调用函数了,这里为了看看三个奖项的输出情况,依次对三个奖项进行了输出,直到每个奖项的奖品都抽完为止

for i in ['一等奖', '二等奖', '三等奖']:
    for _ in range(sum(list(reward_info[i].values()))):
        print('-'*35)
        random_reward(i)

一起来看下效果如何
练习 | 用python写个抽奖程序_第1张图片
练习 | 用python写个抽奖程序_第2张图片
练习 | 用python写个抽奖程序_第3张图片
如果看完还满意,就点个赞让我知道吧~

你可能感兴趣的:(python基础,python)