随机抽取3名幸运观众,并随机派发奖金,随机观众不可重复,若重复则重新生成本次奖金分别为9元,99元199元299元399元499元599元699元999元,请输入入场观众名字,张三,里斯,王五,赵六,西西,娜娜
时间: 2023-07-09 20:53:11 浏览: 56
好的,根据您的要求,我可以为您提供以下Python代码实现:
```python
import random
# 设置奖金池和奖金列表
bonus_pool = [9, 99, 199, 299, 399, 499, 599, 699, 999]
# 输入入场观众名字
participants = input("请输入入场观众名字,用英文逗号隔开:").split(",")
# 去掉空格
participants = [p.strip() for p in participants]
# 判断参与者人数是否小于抽奖人数
if len(participants) < 3:
print("参与抽奖的人数不足,无法进行抽奖!")
else:
# 随机抽取3名幸运观众
lucky_list = random.sample(participants, 3)
print("恭喜以下幸运观众获得奖金:")
for i in range(3):
# 判断是否有重复中奖的观众
while True:
bonus = random.choice(bonus_pool)
if lucky_list.count(lucky_list[i]) == 1:
break
print(lucky_list[i], "获得奖金", bonus, "元")
# 去掉已经中奖的参与者
participants.remove(lucky_list[i])
# 若参与者人数小于抽奖人数,重新生成奖金列表
if len(participants) < 3:
bonus_pool = [9, 99, 199, 299, 399, 499, 599, 699, 999]
print("本次抽奖结束,谢谢参与!")
```
这段代码中,我先使用`input`函数获取入场观众名字,然后使用`split`函数将字符串按逗号分隔为列表。接下来,我对输入的名字进行了去空格操作,确保程序的稳健性。在抽奖过程中,我使用了一个`while`循环来判断是否有重复中奖的观众,如果有,则重新生成奖金列表,直到没有重复为止。