12 random案例 年会抽奖案例
年会抽奖案例
把向向过程编程函数实现时:可读性+重用性,print时,能不使用“”号时,尽量不使用
- 各部门统计员工的姓名 => 部门名称.txt
- 读取用户信息
- 根据特定的奖项配置来进行抽奖
data_list = [
("三等奖",5,"空气净化器"),
("二等奖",3,"ipad"),
("一等奖",2,"iphone 13"),
("特等奖",1,"宝马 X5"),
]
- 一个一个奖项去抽取,每次抽取后领导讲话后,在继续抽取
"""
- 各部门统计员工的姓名 => 部门名称.txt
- 读取用户信息
- 根据特定的奖项配置来进行抽奖
data_list = [
("三等奖",5,"空气净化器"),
("二等奖",3,"ipad"),
("一等奖",2,"iphone 13"),
("特等奖",1,"宝马 X5")
]
- 一个一个奖项去抽取,每次抽取后领导讲话后,在继续抽取
"""
import os
import random
from datetime import datetime
# def get_user_info(files,choices):
message = f"{30 * '*'} 联通年会抽奖系统{30 * '*'}"
print(message)
# 1、读取所有用户信息
user_list = []
for file_name in os.listdir("files"):
dep_name = file_name.split(".")[0] # 获取部门名字
file_path = os.path.join("files", file_name)
f = open(file_path, mode='r', encoding='utf-8')
for line in f:
line = line.split()
if line:
user_list.append(f'{dep_name}-{line}')
f.close()
#方式1
info = f"""
员工数量:{len(user_list)}
时间:{datetime.now().strtime("%Y-%m-%d")}
"""
#方式2
print(f"员工数量:{len(user_list)}\n时间:{datetime.now().strtime("%Y-%m-%d")}\n")
# 2. 输入特定Y/y字符继续
while True:
text = input("输入y/Y继续").strip()
if text.upper() == 'Y':
break
# 3 奖项信息
print(f"{30 * '-'} 奖品信息{30 * '-'}")
data_list = [
("三等奖", 5, "空气净化器"),
("二等奖", 3, "ipad"),
("一等奖", 2, "iphone 13"),
("特等奖", 1, "宝马 X5"),
]
for text, count, title in data_list:
print(f"{text}. 有{count}个,奖品是:{title}")
# 4、输入特定Y/y字符继续
while True:
text = input("输入y/Y继续").strip()
if text.upper() == 'Y':
break
# 5、开始抽奖
print(f"{30 * '-'} 开始抽奖{30 * '-'}")
for text, count, title in data_list:
luck_list = random.sample(user_list, count)
# 避免抽奖姓名重复,将已抽奖的人员,进行移除
for name in luck_list:
user_list.remove(name)
print(f"{text},中奖人员{luck_list},奖品:{title}")
# 存在问题:1、奖项全部出来了,2、有重复抽奖
# 解决问题:1,通过输入回车继续
input('回车继续')
输入特定的字符才能继续往下面执行
# 2.输入回车继续
input ('回车继续')
print(‘123’)
# 输入特定的字符继续
while True:
text = input("输入q继续")
if text == 'q':
break