欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

抽奖程序(python)

程序员文章站 2022-03-19 11:37:55
...

抽奖程序:
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()

运行结果:
抽奖程序(python)