Combate real do Python - sorteio da loteria da reunião anual

Uma empresa tem 300 funcionários e os requisitos para a loteria da reunião anual são os seguintes:

3 primeiros prêmios, prêmio xxx

Nível 2 6 vencedores, prêmio xxxx

Nível 30, prêmio xxx

Exigir:

1. Um total de 3 sorteios, o primeiro sorteio para a terceira série, o segundo sorteio para o segundo prêmio e o terceiro sorteio para o primeiro prêmio

2. Cada funcionário está limitado a ganhar uma vez e não pode repetir

Acabei de escrever da seguinte forma: Se houver algo errado ou um método melhor, por favor, me dê um conselho ~ 


import random #导入random模块用于生成随机数
employee = list(range(300))#生成300个员工id
winner_list = []#定义一个初始化获奖名单
for i in range(3):#抽奖3次设置3次循环
    # ======3等奖====
    if i == 1:
        t3 = random.sample(employee, 30)#使用random.sample生成30个随机数
        if t3 not in winner_list:#判断如果30个随机数不在获奖名单中
            print(f"恭喜编号为", random.sample(employee, 30), "的员工获得了三等奖==大润发100元代金券")#输出获奖名单
            winner_list.append(t3)#将获奖名单的员工编号存进获奖名单中
    # =====2等奖=====
    elif i == 2:
        t2 = random.sample(employee, 6)
        if t2 not in winner_list:
            print(f"恭喜编号为", random.sample(employee, 6), "的员工获得了二等奖===小米手机一部")
            winner_list.append(t2)
    # ======1等奖=====
    else:
        t1 = random.sample(employee, 3)
        if t1 not in winner_list:
            print(f"恭喜编号为", random.sample(employee, 3), "的员工获得了一等奖===mac book pro一台")
            winner_list.append(t1)
            break


Os resultados da execução são os seguintes

 

Acho que você gosta

Origin blog.csdn.net/qq_42954795/article/details/127360629
Recomendado
Clasificación