Python实现随机选人抽奖

365bet手机客户端 admin 2025-06-28 15:19:18 阅读 6519

随机抽奖选人,有1-5等奖,输入1,2,3,4,5可输出1-5等奖中奖名单,主要有三种方法实现,都需要先导入random。

if name == ‘main’:可以使代码从后开始先运行,可以调用前面的函数。

方法1

通过定义函数实现,易理解但代码多。

代码展示:

import random

def First_prize():

list1 = random.choice(list_all)

list_all.remove(list1)

print(f'一等奖为:{list1}')

def Second_Prize():

list2 = random.sample(list_all, 1)

list_all.remove(list2[0])

print(f'二等奖为:{list2}')

def Third_prize():

list3 = random.sample(list_all, 2)

list_all.remove(list3[0])

list_all.remove(list3[1])

print(f'三等奖为:{list3}')

def Fourth_prize():

list4 = random.sample(list_all, 2)

list_all.remove(list4[0])

list_all.remove(list4[1])

print(f'四等奖为:{list4}')

def Fifth_prize():

list5 = random.sample(list_all, 1)

list_all.remove(list5[0])

print(f'五等奖为:{list5}')

if __name__ == '__main__':

list_all =['ajy1','ajy2','ajy3','ajy4','ajy5','ajy6','ajy7','ajy8','ajy9','ajy10','ajy11','ajy12','ajy13','ajy14']

print('1:一等奖','2:二等奖','3:三等奖','4:四等奖','5:五等奖',sep=' ')

for i in range(5):

n =input('请输入抽奖级别:')

if n == '1':

Fifth_prize()

elif n == '2':

Second_Prize()

elif n == '3':

Third_prize()

elif n == '4':

Fourth_prize()

elif n == '5':

Fifth_prize()

print()

print(' '.join(list_all),end=' ')

print('很遗憾未获奖')

运行结果:

方法2

for i ,j,num in list单循环获取多个元素 代码展示:

import random

def quchu_name(name_jiang):

for i in name_jiang:

for j in list_all:

if i == j:

list_all.remove(j)

def choujiang(n):

for i,j,num in liat_jiang:

if i == int(n):

name_jiang = random.sample(list_all,num)

quchu_name(name_jiang)

info = f"恭喜{','.join(name_jiang)} 中得{j}等奖!"

print(info)

if __name__ == '__main__':

list_all =['ajy1','ajy2','ajy3','ajy4','ajy5','ajy6','ajy7','ajy8','ajy9','ajy10','ajy11','ajy12','ajy13','ajy14']

liat_jiang =[

(1,'一等奖',1),

(2,'二等奖',1),

(3,'三等奖',2),

(4,'四等奖',2),

(5,'五等奖',1)

]

print('1:一等奖', '2:二等奖', '3:三等奖', '4:四等奖', '5:五等奖', sep=' ')

for i in range(5):

n = input('请输入抽奖级别:')

choujiang(n)

print(f"很遗憾{','.join(list_all)} 未中奖。")

运行结果:

方法3

使用yield返回输出,不能选择。 代码展示:

import random

def chou_jiang(l1):

for i, num, goods in jiang_xiang:

print(f"正在抽取{i}".center(50, '-'))

name_list = random.sample(l1,num)

# 将中奖名单从原名单中删除

for n in name_list:

if n in l1:

l1.remove(n)

info = f"恭喜{','.join(name_list)} 中得{i}!!!!"

yield info

list1 = ['ajy1', 'ajy2', 'ajy3', 'ajy4', 'ajy5', 'ajy6', 'ajy7','ajy8','ajy9','ajy10']

jiang_xiang = [

('一等奖', 1, 'mate70 pro'),

('二等奖', 1, '小米手环'),

('三等奖', 2, '按摩仪'),

('四等奖', 2, '京东购物卡'),

('五等奖', 1, '无')

]

chou_jiang(list1)

res1 = chou_jiang(list1)

input("开始抽一等奖....按下回车开始!")

print(res1.__next__())

input("开始抽二等奖....按下回车开始!")

print(res1.__next__())

input("开始抽三等奖....按下回车开始!")

print(res1.__next__())

input("开始抽四等奖....按下回车开始!")

print(res1.__next__())

input("开始抽五等奖....按下回车开始!")

print(res1.__next__())

运行结果:

相关文章