综合练习
年年会抽奖程序
张三科技有限公司有300员工,开年会抽奖,奖项如下:
一等奖 3名, 泰国5日游
二等奖6名,Iphone手机
三等奖30名,XXX一盒
规则:
1. 共抽3次,第⼀次抽3等奖,第2次抽2等奖,第3次压轴抽1等奖
2. 每个员工限中奖⼀次,不能重复
解题思路:
1. ⽣生成一个员⼯列表,⽤random模块从里面取随机值
2. 取完值之后,⽴刻从员工大列表里把中奖人删掉,即可防止其再次中奖文章来源:https://www.toymoban.com/news/detail-621105.html
import random
import string
count = 0
staff = [] # 储存员工
for i in range(50):
l_name = random.choice("赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨")
f_name = random.choice("秀儿")
# "美娜静淑惠珠翠雅芝玉萍红娥玲芬芳燕彩春菊兰凤洁梅琳素云莲真环雪荣爱妹霞香月莺"
# "媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇"
# "菁梦岚苑婕馨瑗琰韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育滢馥筠柔竹霭凝晓欢霄枫芸菲寒伊亚宜可姬舒影荔枝思丽"
# "伟刚勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星"
# "光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言"
# "若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘")
worker = f"{l_name+f_name}"
rep = 1
if worker in staff: # 处理重名
rep_name = worker
while rep_name in staff: # 可能有三个四个甚至更多重名
rep += 1
rep_name = f"{worker}-{rep}"
staff.append(rep_name)
else:
staff.append(worker)
# print(staff) # 测试打印
while count < 3:
if count == 0:
p3 = random.sample(staff, 30)
print(f"三等奖中奖名单:{p3}")
# 使用列表推导式在staff中删除p1中的元素
staff = [x for x in staff if x not in p3] # 已中奖的移出列表
elif count == 1:
# p2 = []
p2 = random.sample(staff, 6)
print(f"二等奖中奖名单:{p2}")
staff = [x for x in staff if x not in p2]
else:
p1 = random.sample(staff, 3)
print(f"一等奖中奖名单:{p1}")
count += 1
欢迎指正 ~文章来源地址https://www.toymoban.com/news/detail-621105.html
到了这里,关于【8天Python】 Day02 年会抽奖小程序 可直接运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!