年会抽奖程序
张三科技有限公司有300员⼯,开年会抽奖,奖项如下:
⼀等奖 3名, 泰国5⽇游
⼆等奖6名,Iphone⼿机
三等奖30名,xxx
规则:
思路一建立空表储存员工信息,为防止抽到重复,三次抽奖循环在同一级,但是不能防止小循环内编号重复
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表中删除,防止下一次循环抽到