张三科技有限公司有300名员工,开年会抽奖,奖项如下
一等奖3名 : 泰国五日游
二等奖6名 :iphone手机
三等奖30名 :避孕套一盒
规则:
1.一共抽3次,第一次抽3等奖,第二次抽2等奖,第三次压轴抽1等奖
2.每个员工限中奖一次
# 张三科技有限公司有300名员工,开年会抽奖,奖项如下
# 一等奖3名 : 泰国五日游
# 二等奖6名 :iphone手机
# 三等奖30名 :避孕套一盒
# 规则:
# 1.一共抽3次,第一次抽3等奖,第二次抽2等奖,第三次压轴抽1等奖
# 2.每个员工限中奖一次
A:主要利用for循环方法实现
staff1 = list(range(300))#300名员工总编号
import random
count3 = 0
while count3 < 3:
num3 = []#存储中奖
n3 = []#编号
put3 = input("请输入go进行第一次抽奖:").strip()
if put3 == "go":
for i in range(30):
number3 = random.choice(staff1)#三等奖的其中一个人
show3 = f"热烈庆祝{number3}号码牌的员工抽中三等奖,获得避孕套一盒"
s3 = number3
num3.append(show3)
n3.append(s3)
print(i + 1, show3)
break
else:
print("无效语法")
count3 += 1
else:
print("错误过多,已被锁定")
staff2 = list(set(staff1).difference(set(n3)))#总人数编号中去除三等奖人员编号
count2 = 0
while count2 < 3:
num2 =[]
n2 = []
put2 = input("请输入go进行第二次抽奖:").strip()
if put2 == "go":
for j in range(6):
number2 = random.choice(staff2)#二等奖的其中一个人
show2 = f"恭喜{number2}号码牌的员工抽中二等奖,获得iphone手机一个"
s2 = number2
num2.append(show2)
n2.append(s2)
print(j+1, show2)
break
else:
print("无效语法")
count2 += 1
else:
print("错误过多,已被锁定")
staff3 = list(set(staff2).difference(set(n2)))
count1 = 0
while count1 < 3:
num1 =[]
n1 = []
put1 = input("请输入go进行最后一次抽奖:").strip()
if put1 == "go":
for s in range(3):
number1 = random.choice(staff3)
show1 = f"恭喜{number1}号码牌的员工抽中以等奖,获得泰国五日游一次"
s1 = number1
num1.append(show1)
n1.append(s1)
print(s+1, show1)
break
else:
print("无效语法")
count2 += 1
else:
print("错误过多,已被锁定")
print("年会结束,祝大家生活愉快。")
B:运用while & random工具实现
staffs = list(range(300))
import random
num_of_times = [3,6,30]
count = 3
while count > 0:
choice = (input(f"请开始抽{count}等奖")).strip()
#从staff列表 随机取出30个值
if not choice:continue
winner_list = random.sample(staffs,num_of_times[count-1])
# 因为count初始值为3,在num_of_times中第一次三等奖中30人索引为2所以要每次循环减1
print(f"恭喜中了{count}等奖的人")
print(winner_list)
for i in winner_list:
staffs.remove(i)#把中奖的人删除
count -= 1
print("年会结束,祝大家生活愉快")
标签:count,抽奖,年会,python,random,list,go,print,append
来源: /zxx1121/p/13045678.html