找回密码
 中文实名注册
搜索
查看: 683|回复: 0

抽奖小游戏

[复制链接]

11

主题

13

回帖

847

积分

高级会员

积分
847
发表于 2025-6-15 17:17:46 | 显示全部楼层 |阅读模式
import random

def choujiang(participants, prizes):
    """
    进行抽奖。

    Args:
        participants: 参与者列表。
        prizes: 奖品列表。

    Returns:
        一个字典,键是奖品,值是对应的获奖者。
        如果参与者或奖品列表为空,则返回 None。
        如果参与者人数少于奖品数量,也返回 None 并打印提示信息。
    """

    if not participants or not prizes:
        print("参与者或奖品列表不能为空!")
        return None

    if len(participants) < len(prizes):
        print("参与者人数不足以分配所有奖品!")
        return None

    winners = {}
    participants_copy = participants[:]

    for prize in prizes:
        winner = random.choice(participants_copy)
        winners[prize] = winner
        participants_copy.remove(winner)

    return winners


def main():
    """主函数,获取用户输入并进行抽奖。"""

    participants_input = input("请输入参与者名单,用逗号分隔:")
    participants = [p.strip() for p in participants_input.split(",") if p.strip()]  # 去除空字符串

    prizes_input = input("请输入奖品列表,用逗号分隔:")
    prizes = [p.strip() for p in prizes_input.split(",") if p.strip()]  # 去除空字符串


    if not participants or not prizes:
        print("参与者或奖品列表不能为空!")
        return

    if len(participants) < len(prizes):
        print("参与者人数不足以分配所有奖品!")
        return


    winners = choujiang(participants, prizes)

    if winners:
        print("\n抽奖结果:")
        for prize, winner in winners.items():
            print(f"{prize}: {winner}")


if __name__ == "__main__":
    main()

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 中文实名注册

本版积分规则

快速回复 返回顶部 返回列表