import random
'''
随机交互礼物,员工ABCDE分别有礼物12345编号,每个员工不能抽到自己的
'''
people = {
"A": 1,
"B": 2,
"C": 3,
"D": 4,
"E": 5,
}
# 所有的礼物编号
gifts = [i for i in people.values()]
mans = [j for j in people.keys()]
def get_gift():
'''随机抽取礼物'''
if len(gifts) > 2:
# 设置一个随机值,范围是0-礼物数量减1
n = random.randint(0, len(gifts)-1)
#当礼物数大于2时,随便取礼物
if people.get(x) == gifts[n]:
# 判断等于自己的礼物
get_gift() # 重新抽取
else:
print("%s 取到了礼物编号 %s" % (x, gifts[n]))
# 取到了礼物后,把礼物从礼品盒里面移除掉
del gifts[n]
mans.remove(x)
else:#当礼物数小于3时,要判断三种情况:
#当两个礼物都不是剩下的两个人的,随机取。
if people.get(x) not in gifts:
n1 = random.randint(0, len(gifts) - 1)
# 当礼物数大于2时,随便取礼物
if people.get(x) == gifts[n1]:
# 判断等于自己的礼物
get_gift() # 重新抽取
else:
print("%s 取到了礼物编号 %s" % (x, gifts[n1]))
# 取到了礼物后,把礼物从礼品盒里面移除掉
del gifts[n1]
mans.remove(x)
#当有一个礼物属于其中一个人,换着取。
else:
print("%s 取到了礼物编号 %s" % (mans[0], gifts[1]))
print("%s 取到了礼物编号 %s" % (mans[1], gifts[0]))
if __name__ == '__main__':
while 1:
if len(gifts) == 0:
print("换礼物结束!")
exit()
x = input("输入一个员工:")
if x not in mans:
print("%s 已经分配礼物了,请重新未分配礼物的员工" % x)
else:
get_gift()