python每日一练 [1]
个人好久没用python,现在为了保持熟练度,争取每天做一两个小程序锻炼、锻炼。
年会抽奖
路飞科技有限公司有300员工,开年会抽奖,奖项如下: 一等奖3名:泰国5日游+手术费报销 二等奖6名:iPhone14手机 三等奖30名:三斤苹果 <br>
规则:
1.共抽3次,第一次抽3等奖,第2次抽2等奖,第3次压轴抽1等奖 2.每个员工限中奖一次,不能重复 <br>
解题思路:
1.生成一个员工列表,用random模块从里面取随机值 2.取完值之后,立刻从员工大列表里把中奖人删掉,即可防止其再次中奖 <br>
实现代码如下:
import random
# 员工总数
total_employees = 300
#员工列表,这里用编号代替实际姓名
employees = list(range(1, total_employees + 1))
# 设置奖项
prizes = {
'一等奖': {'quantity': 3, 'prize': '泰国5日游+手术费报销'},
'二等奖': {'quantity': 6, 'prize': 'iPhone14手机'},
'三等奖': {'quantity': 30, 'prize': '三斤苹果'}
}
# 抽奖流程
print("年会抽奖开始:")
# 剩余员工列表
remaining_employees = employees.copy()
# 抽一等奖
firstPrize_winners = random.sample(remaining_employees, prizes['一等奖']['quantity'])
print(f"一等奖获奖者: {firstPrize_winners}, 奖品: {prizes['一等奖']['prize']}")
# 抽二等奖
secondPrize_winners = random.sample(remaining_employees, prizes['二等奖']['quantity'])
remaining_employees = [emp for emp in remaining_employees if emp not in secondPrize_winners]
print(f"二等奖获奖者: {secondPrize_winners}, 奖品: {prizes['二等奖']['prize']}")
# 抽三等奖
thirdPrize_winners = random.sample(remaining_employees, prizes['三等奖']['quantity'])
remaining_employees = [emp for emp in remaining_employees if emp not in thirdPrize_winners]
print(f"三等奖获奖者: {thirdPrize_winners}, 奖品: {prizes['三等奖']['prize']}")
# 检查是否还有剩余员工未中奖
if remaining_employees:
print(f"还有{len(remaining_employees)}名员工未中奖。")
else:
print("所有员工都已参与抽奖。")
<br><br><br>
运行结果
仅供参考,随机抽取的结果不会一致。 <br>
控制台输出:
年会抽奖开始:
一等奖获奖者: [6, 248, 102], 奖品: 泰国5日游+手术费报销
二等奖获奖者: [157, 197, 222, 40, 99, 234], 奖品: iPhone14手机
三等奖获奖者: [95, 24, 280, 170, 219, 121, 244, 242, 159, 107, 120, 158, 52, 90, 239, 36, 44, 289, 257, 13, 152, 188, 279, 21, 64, 195, 275, 211, 277, 85], 奖品: 三斤苹果
还有264名员工未中奖。
<br><br><br>
总结
无、不知道说些什么。