python重复抽奖_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()

运行结果:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值