年会抽奖程序python

商冠玉
2023-12-01

年会抽奖程序

年会抽奖程序
张三科技有限公司有300员⼯,开年会抽奖,奖项如下:
⼀等奖 3名, 泰国5⽇游
⼆等奖6名,Iphone⼿机
三等奖30名,xxx
规则:

  1. 共抽3次,第⼀次抽3等奖,第2次抽2等奖,第3次压轴抽1等奖
  2. 每个员⼯限中奖⼀次,不能重复
    解题思路:
  3. ⽣成⼀个员⼯列表,⽤random模块从⾥⾯取随机值
  4. 取完值之后,⽴刻从员⼯⼤列表⾥把中奖⼈删掉,即可防⽌其再次中奖

思路一建立空表储存员工信息,为防止抽到重复,三次抽奖循环在同一级,但是不能防止小循环内编号重复

import random #添加random和string工具包random模块可以产⽣指定范围内的随机数、字符串等string 模块数字字母模块
import string
s=string.ascii_uppercase+string.digits #随机数加字母
jh=[] #建立空列表
count=0 #计数器
while count<300:
    count += 1
    n = random.sample(s, 5)  # 从s随机数和字母中取五个值
    shuchu = "".join(n)  # 定义随机员工号
    jh.append(shuchu)
    h=jh.index(shuchu)
    print(f"{h+1}号员工{shuchu}")
print("三等奖中奖的是:")
for i in range(30):
    jiang3=str(random.sample(jh,1)).strip('[\']')
    hm3=jh.index(jiang3)
    print(i+1,f"第{hm3+1}号员工",jiang3)
    # jh.remove(jiang3)
print("二等奖中奖的是:")
for j in range(6):
    jiang2=str(random.sample(jh,1)).strip('[\']')
    hm2 = jh.index(jiang2)
    print(j+1,f"第{hm2+1}号员工",jiang2)
    # jh.remove(jiang2)
print("一等奖中奖的是:")
for k in range(3):
    jiang1=str(random.sample(jh,1)).strip('[\']')
    hm1 = jh.index(jiang1)
    print(k+1,f"第{hm1+1}号员工",jiang1)
    # jh.remove(jiang1)

代码修改
添加判断条件,当满足条件是奖池随机抽对于次数,同时输出获奖信息

import random #添加random和string工具包random模块可以产⽣指定范围内的随机数、字符串等string 模块数字字母模块
import string
s=string.ascii_uppercase+string.digits #随机数加字母
jh=[] #建立空列表
count=0 #计数器
print("公司在职员工")
while count<300:    #随机生产300个员工编号添加到列表中
    count += 1
    n = random.sample(s, 5)  # 从s随机数和字母中取五个值
    shuchu = "".join(n)  # 定义随机员工号
    jh.append(shuchu)     #将输出的随机数添加到jh列表中
    h=jh.index(shuchu)    #查询输出的随机号在列表中的索引
    print(f"{h+1}号员工{shuchu}") #为列表员工编号
for m in range(3):   #抽奖三次
    print(f"{3-m}等奖中奖的是:") 
    if m ==0:    #定义第一次抽奖的变量
        j=30
        j1="恭喜获得xxx"
    elif m==1: #定义第二次抽奖的变量
        j=6
        j1="恭喜获得水果手机一部"
    else: #定义第三次抽奖的变量
        j=3
        j1="恭喜获得泰国五日游"
    for i in range(j):   #抽奖循环,从jh列表中随机抽取一个员工,第一次抽30次第二次抽6次第三次抽3次
        jiang=str(random.sample(jh,1)).strip('[\']')   #注意strip('[\']')去除多余输出符号,因为输出中含有[]和'所以不去除无法在jh列表中查找删除
        print(i+1,jiang,j1)
        jh.remove(jiang)   #将抽取过的数据从jh表中删除,防止下一次循环抽到
 类似资料: