抽奖程序(python)

抽奖程序:
1、每次抽奖完成,会提示是否继续抽奖,只有输入“是”才继续抽奖
2、抽奖逻辑:
(1)生产0-100的整数,构造成列表
(2)构造三个列表,分别是一等奖、二等奖、三等奖中奖号码
(3)每次生成一个随机数,然后看是否在中奖号码里,如果在,打印一句话:
“恭喜您,第{}次中一等奖,中奖号码是:{}”;已经中奖的号码,下一次不会被抽到

每人可以抽奖三次,抽奖完成后打印出分别1/2/3等奖的中奖号码,然后等待下一次抽奖

代码:

'''
抽奖程序:
1、每次抽奖完成,会提示是否继续抽奖,只有输入“是”才继续抽奖
2、抽奖逻辑:
    (1)生产0-100的整数,构造成列表 
    (2)构造三个列表,分别是一等奖、二等奖、三等奖中奖号码
    (3)每次生成一个随机数,然后看是否在中奖号码里,如果在,打印一句话:
        "恭喜您,第{}次中一等奖,中奖号码是:{}";已经中奖的号码,下一次不会被抽到
    
    每人可以抽奖三次,抽奖完成后打印出分别1/2/3等奖的中奖号码,然后等待下一次抽奖
'''

import random

def lottery():
    # 生成抽奖列表
    # 用集合,一二三等奖的不可以重复
    number = [] # 中奖号码 一共18个
    First_prize = [] # 一等奖 假设一等奖有10个中奖number
    Second_prize = [] # 二等奖 假设二等奖有15个中奖number
    Thire_prize = [] # 三等奖 假设三等奖有20个中奖number

    # 中奖号码
    while len(set(number)) < 45:
        number.append(random.randint(0,100))
        number = list(set(number))

    # 将中奖号码分配给一二三等奖
    while True:
        if len(First_prize) < 10:
            First_prize.append(number.pop())
        elif len(Second_prize) < 15:
            Second_prize.append(number.pop())
        elif len(Thire_prize) < 20:
            Thire_prize.append(number.pop())
        if len(First_prize) == 10 and len(Second_prize) == 15 and len(Thire_prize) == 20:
            break

    return First_prize,Second_prize,Thire_prize

def main():
    # 打印抽奖
    i = 0 # 每个人三次机会
    first_count = 0 # 一等奖中奖次数
    second_count = 0 # 二等奖中奖次数
    third_count = 0 # 三等奖中奖次数
    first = [] # 一等奖中奖列表
    second = [] # 二等奖中奖列表
    third = [] # 三等奖中奖列表

    First_prize,Second_prize,Thire_prize = lottery()

    while i < 3:
        number = random.randint(0,100) # 随机生成一个中奖号码
        if number in First_prize: # 在一等奖列表中
            first_count += 1
            first.append(number)
            First_prize.remove(number)
            print("恭喜您,第{}次中一等奖,中奖号码是:{}".format(first_count,number))
        elif number in Second_prize: # 在二等奖列表中
            second_count += 1
            second.append(number)
            Second_prize.remove(number)
            print("恭喜您,第{}次中二等奖,中奖号码是:{}".format(second_count,number))
        elif number in Thire_prize: # 在二等奖列表中
            third_count += 1
            third.append(number)
            Thire_prize.remove(number)
            print("恭喜您,第{}次中三等奖,中奖号码是:{}".format(third_count,number))
        
        i += 1
    print('一等奖中奖号码:',first)
    print('二等奖中奖号码:',second)
    print('三等奖中奖号码:',third)
    key = input('抽奖结束,输入"是"进行一轮新的抽奖:')
    if key == '是':
        return main()
    else:
        print('游戏结束')


if __name__ == "__main__":
    main()

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值