抽奖的问题

抽奖的问题_第1张图片


写法一:

import random

lucky_num = []  # 存放中奖人名单,避免多次中奖
lucky_count = 0  # 表示每一种奖品人数够了

for time in range(0, 3):  # 抽三次奖
    lucky_count = 0  # 每次刷新

    print(f'第一次抽奖现在开始,这次抽的是{3-time}等奖\n')

    # 判断奖品是哪个
    if time == 0:  # 三等奖
        reward = "三斤苹果"
    elif time == 1:  # 二等奖
        reward = "iPhone14手机"
    else:
        reward = "泰国5日游 + 手术费报销"

    if time == 0:  # 三等奖
        while True:
            # 中奖号码
            lucky = random.randint(1, 301)  # 1-300号

            # 如果是第一次抽中
            if lucky not in lucky_num:
                lucky_num.append(lucky)  # 加入到中奖人名单中
                lucky_count = lucky_count + 1  # 人数加1
                print(f"{lucky_count}. 恭喜{lucky}号抽中{3-time}等奖,获得{reward}奖励")

            # 人数足够,则取消这次循环
            if lucky_count == 30:
                print("----------------------------------------------------------")
                break
    elif time == 1:  # 二等奖
        while True:
            # 中奖号码
            lucky = random.randint(1, 301)  # 1-300号

            # 如果是第一次抽中
            if lucky not in lucky_num:
                lucky_num.append(lucky)  # 加入到中奖人名单中
                lucky_count = lucky_count + 1  # 人数加1
                print(f"{lucky_count}. 恭喜{lucky}号抽中{3 - time}等奖,获得{reward}奖励")

            # 人数足够,则取消这次循环
            if lucky_count == 6:
                print("----------------------------------------------------------")
                break
    elif time == 2:  # 一等奖
        while True:
            # 中奖号码
            lucky = random.randint(1, 301)  # 1-300号

            # 如果是第一次抽中
            if lucky not in lucky_num:
                lucky_num.append(lucky)  # 加入到中奖人名单中
                lucky_count = lucky_count + 1  # 人数加1
                print(f"{lucky_count}. 恭喜{lucky}号抽中{3 - time}等奖,获得{reward}奖励")

            # 人数足够,则取消这次循环
            if lucky_count == 3:
                print("----------------------------------------------------------")
                break


写法二:

import random

staff_list = []
for i in range(1, 301):  # 初始化员工编号
    staff_list.append(f"员工{i}")

level = [30, 6, 3]  # 存放三类奖个数

for j in range(3):
    # k代表元素个数,从staff_list中随机挑选
    winner_list = random.sample(staff_list, k=level[j])
    for winner in winner_list:
        staff_list.remove(winner)  # 去除选中的,避免一个人中多次
    print(f"恭喜获得{3 - j}等奖的是:{winner_list}")  # 中奖的人
    # print(f"还剩{len(staff_list)}个人未中奖")  # 还剩多少人


你可能感兴趣的:(python练习,python)