硕士生
逆向小白
 
- 金币
- 2680
- 好评
- 55
- 信誉
- 168
    
|
发表于
2026-2-17 09:04:32
来自手机
|
显示全部楼层
来自 江西
抽奖用的,全程录屏
- import random
- def main():
- """
- 抽奖主程序
- 功能:从用户输入的名单中随机抽取一名中奖者(重复姓名视为权重)
- """
-
- # 1. 获取用户输入的名单
- print("欢迎参加抽奖活动!")
- print("请输入参与抽奖的人员名单,用英文逗号分隔(例如:张三,李四,王五)")
- print("提示:同一个名字重复输入几次,他的中奖权重就增加几倍")
-
- input_str = input("请输入名单:").strip()
-
- # 2. 处理输入数据
- if not input_str: # 检查是否为空输入
- print("\n错误:名单不能为空!")
- return
-
- # 分割字符串并清理空格
- raw_names = input_str.split(',')
- cleaned_names = [name.strip() for name in raw_names]
-
- # 过滤掉空名字
- valid_names = [name for name in cleaned_names if name]
-
- if not valid_names: # 检查是否全是无效名字
- print("\n错误:未检测到有效姓名!")
- return
-
- # 3. 构建抽奖池(重复名字代表权重)
- lottery_pool = []
- for name in valid_names:
- # 每个名字在抽奖池中出现的次数等于它的权重(重复次数)
- lottery_pool.extend([name] * (cleaned_names.count(name)))
-
- # 4. 随机抽取中奖者
- winner = random.choice(lottery_pool)
-
- # 5. 显示结果
- print("\n===== 抽奖结果 =====")
- print(f"参与人数(含权重): {len(lottery_pool)}人")
- print(f"实际参与者: {len(set(valid_names))}人")
- print(f"恭喜 【{winner}】 中奖!
复制代码 |
|