边写边学Python(15)年会抽奖程序

题目

某公司假设有300名员工,开年会抽奖,奖项如下:
一等奖3名:泰国5日游
二等奖6名:Iphone手机
三等奖30名:小型空气净化剂一盒
抽奖规则:
1.共抽三次,第一次抽三等奖,第二次抽二等奖,第三次压轴抽一等奖。
2.每个员工限中奖一次,不得重复。

程序分析

1.生成一个员工列表,用random模块从里面随机取值。
2.取完值之后,立刻从员工大列表里把中奖人删掉,防止其再次中奖。

代码

三个奖项分三个部分进行抽奖:

import random

#随机创建抽奖员工列表
list=random.sample([i for i in range(1,301)],300)

choice = input('开始抽三等奖:')
winners3 = random.sample(list,30)
print('获奖者的号码为',end = '')
print(winners3)
for yg in winners3:
    list.remove(yg)  #从员工列表删除已中奖者

choice = input('开始抽二等奖:')
winners2 = random.sample(list,6)
print('获奖者的号码为',end = '')
print(winners2)
for yg in winners2:
    list.remove(yg)  #从员工列表删除已中奖者

choice = input('开始抽一等奖:')
winners1 = random.sample(list,3)
print('获奖者的号码为',end = '')
print(winners1)
for yg in winners1:
    list.remove(yg)  #从员工列表删除已中奖者

输出结果:

开始抽三等奖:
获奖者的号码为[50, 14, 74, 31, 90, 277, 281, 127, 76, 261, 129, 293, 80, 243, 247, 155, 254, 187, 28, 191, 284, 211, 73, 210, 238, 18, 61, 162, 258, 181]
开始抽二等奖:
获奖者的号码为[287, 280, 186, 89, 224, 177]
开始抽一等奖:
获奖者的号码为[194, 35, 138]

其实抽奖的环节是一样的,只是每个奖项获得人数不同,可以对代码进行遍历

import random
staff_list = []
for i in range(0,300):
    staff_list.append(f'员工{i}')

lottery_levels = [30,6,3]
count = 0
while count < 3:
    choice = input(f'开始抽{3-count}奖:')
    winners = random.sample(staff_list,lottery_levels[count])
    print(winners)
    for p in winners:
        staff_list.remove(p) #删除已中奖者
    count += 1

输出结果:

开始抽3奖:
['员工222', '员工289', '员工156', '员工258', '员工280', '员工165', '员工1', '员工148', '员工26', '员工39', '员工143', '员工248', '员工22', '员工200', '员工66', '员工290', '员工119', '员工101', '员工259', '员工221', '员工167', '员工207', '员工27', '员工74', '员工199', '员工69', '员工293', '员工189', '员工287', '员工142']
开始抽2奖:
['员工208', '员工213', '员工250', '员工68', '员工99', '员工92']
开始抽1奖:
['员工30', '员工104', '员工216']

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

isxhyeah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值