双色球,抽奖是否中奖

# @Author: Gerry Zhao
# @Date: 2019-01-23  18:56:47
# Last Modified by: Gerry Zhao
# Last Modified time: 2019-01-23  18:56:47
 
import random   #导入random库,生成随机数的时候要用到
 
red_num_list = []     #定义两个空列表,分别用来存放用户选择的红球号码和蓝球号码
blue_num_list = []
print("请从下方输入您心仪的双色球号码一注~")    #呈现提示语
 
for i in range(1, 7):    #红球序号1-6号,循环6次一共选择6个红球
    red_num = int(input("  请输入红球" + str(i) + ":"))   #提示用户输入红球号码,之所以转化为整数是因为不想打印列表时出现引号
    red_num_list.append(red_num)    #将输入的红球号码存放进列表red_num_list
 
red_num_list.sort()   #对列表red_num_list中的元素从小到大永久排序,便于阅读结果,增加规范性
 
blue_num=int(input("\n  请输入蓝球:"))    #提示用户输入蓝球号码,另起一行和红球号码分开,清晰明了
blue_num_list.append(blue_num)            #将输入的蓝球号码存放进列表blue_num_list中
 
My_num_list=str(red_num_list)+"-"+str(blue_num_list)   #将用户选择的红球号码和蓝球号码连接成字符串作为用户购买的一注双色球号码储存在变量My_num_list中
 
red_ball_list=[]    #建立两个空列表,分别用于存放随机生成的红球号码和蓝球号码
blue_ball_list=[]
 
red_num_scope=list(range(1,34)) #限定红球号码随机选择的范围,shuffle()函数只能处理列表,不能处理数字范围,所以用list()函数将数字范围转化为列表
blue_num_scope=range(1,17)      #限定蓝球号码随机选择的范围,choice()函数可处理数字范围
 
for i in range(0,6):   #循环6次,每次随机选出一个红球号码,一共选出6个红球号码
    random.shuffle(red_num_scope)  #把红球号码可选范围列表内的元素随机排序,相当于洗牌
    red_ball=red_num_scope.pop()   #删除红球号码选择范围列表内最后一个元素(相当于摸牌,摸了最后一张牌,并且把摸到的牌删除),并将其值储存在变量red_ball中(所删除的元素是随机的,列表内每一个元素被删除的概率是相等的)
    red_ball_list.append(red_ball) #把选出的元素的值(摸到的牌)添加到列表red_ball_list中(元素的选择是随机的,这个上一步注释已经解释清楚了)。由于选出的元素已经在原列表中被删除,因此下一轮的元素选择范围将不再包括已经选出的号码,这正符合现实中双色球的摇奖过程
 
red_ball_list.sort()  #对随机选出的红球号码组成的列表进行从小到大永久排序,便于阅读,增加规范性
 
blue_ball=random.choice(range(1,17))     #从1-16数字范围中随机选择一个蓝球号码
blue_ball_list.append(blue_ball)        #把选出的唯一一个蓝球号码添加到列表blue_ball_list中
 
result_list=str(red_ball_list)+"-"+str(blue_ball_list)   #把机器随机选出的6个红球号码和1个蓝球号码连接成字符串作为一注双色球开奖号码储存在变量result_list中
 
print("\n\n您的号码选择为:",My_num_list)   #将用户购买的一注双色球号码打印出来
print("\n实际开奖号码为:",result_list)     #将双色球开奖号码打印出来
 
#接下来将用户购买的号码与实际开奖号码进行对比,判断中奖情况
 
n1=0  #定义两个变量n1和n2,初始值都为0
n2=0  #n1代表红球中奖的个数,n2代表蓝球中奖的个数
 
for i in red_num_list:          #用两个for循环遍历用户选择的红球号码列表和实际开奖的红球号码列表,如果号码相同,n1的值就增加1
    for j in red_ball_list:     #遍历完成后n1的最终值就是红球号码中奖的个数
        if i==j:                #若是红球一个都没中奖,号码一个都不相同的话,n1的值还是初始值0(表示红球中了0个)
            n1+=1
 
if blue_num==blue_ball:    #如果蓝球中奖n2的值变为1(表示蓝球中了1个),蓝球不中奖n2的值还是初始值0(表示蓝球中了0个)
    n2=1
 
#下面根据红球号码和蓝球号码中奖的个数(n1和n2的值)来确定中奖等级,并附带说明(瞎写的哈哈O(∩_∩)O~)一起以字符串的形式储存在变量luck中
#严格根据福彩双色球的中奖规则所写,包括了所有的红蓝组合以及相对应的中奖情况
 
if n1==6 and n2==1:
    luck="恭喜您喜中一等奖!快去享受开挂人生~"
if n1==6 and n2==0:
    luck="恭喜您喜中二等奖!生活稍稍滋润~"
if n1==5 and n2==1:
    luck="恭喜您喜中三等奖!可以去吃大餐了~"
if n1==5 and n2==0:
    luck="恭喜您喜中四等奖!去买礼物吧~"
if n1==4 and n2==1:
    luck="恭喜您喜中四等奖!去买礼物吧~"
if n1==4 and n2==0:
    luck="恭喜您喜中五等奖!您可以拿奖金再买五注~"
if n1==3 and n2==1:
    luck="恭喜您喜中五等奖!您可以拿奖金再买五注~"
if n1==0 and n2==1:
    luck="恭喜您喜中六等奖!您可以拿奖金再买两注加一支一块钱的雪糕~"
if n1==1 and n2==1:
    luck="恭喜您喜中六等奖!您可以拿奖金再买两注加一支一块钱的雪糕~"
if n1==2 and n2==1:
    luck="恭喜您喜中六等奖!您可以拿奖金再买两注加一支一块钱的雪糕~"
if n1<4 and n2==0:
    luck="未中奖!请再接再厉,继续买买买~~~祝您下次把大奖收入囊中!"
 
print("\n",luck)   #另起一行打印变量luck关联的字符串
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值