#初始化开奖号码 import random kaijiang_red=[x for x in range(1, 21)] kaijiang_red_ball=random.sample(kaijiang_red, 5) kaijiang_blue = [x for x in range(1, 11)] kaijiang_blue_ball=random.choice(kaijiang_blue) # 双色球说明 print("星宇双色球\ \n双色球投注规则具体规定如下:\ \n需要投注5个红色球号码和1个蓝色球号码,提示输入后输入5个红球号码(5个号码各不相同)和1个蓝球号码," "红球输入数值为1~20,蓝球输入数值为1~10,每两个号码之间用逗号隔开。\ \n双色球中奖规则具体规定如下:\ \n一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;\ \n二等奖:投注号码与当期开奖号码中的5个红色球号码相同,即中奖;\ \n三等奖:投注号码与当期开奖号码中的任意4个红色球号码和1个蓝色球号码相同,即中奖;\ \n四等奖:投注号码与当期开奖号码中的任意3个红色球号码和1个蓝色球号码相同,即中奖;\ \n例:假如当期开奖号码为:红球为1,8,13,15,18,蓝球为10," "小明投注号码为:红球为1,8,13,15,18,蓝球为10。则与当期号码全部相同,中一等奖。") #计算排列情况(计算出jiang12,jiang3,jiang4这三个列表,三个列表模拟随机双色球在摇出五个球后红球中五个,红球中四个以上,红球中三个以上这三种情况的所有情况) from itertools import permutations jiang12=[] for jiang12_permutation in permutations(kaijiang_red_ball, 5): jiang12.append(jiang12_permutation) jiang3_4=[] for jiang3_4_permutation in permutations(kaijiang_red_ball,4): jiang3_4.append(jiang3_4_permutation) jiang3=[] for i in range(1,6): for j in range(1,21): for x in range(0,len(jiang3_4)-1): list1=list(jiang3_4[x]) list1.insert(i-1,j) jiang3.append(list1) jiang4_3=[] for jiang4_3_permutation in permutations(kaijiang_red_ball,3): jiang4_3.append(jiang4_3_permutation) jiang4_4=[] for i in range(1,5): for j in range(1,21): for x in range(0,len(jiang4_3)-1): list1=list(jiang4_3[x]) list1.insert(i-1,j) jiang4_4.append(list1) jiang4=[] for i in range(1,6): for j in range(1,21): for x in range(0,len(jiang4_4)-1): list1=list(jiang4_4[x]) list1.insert(i-1,j) jiang4.append(list1) # 用户输入(符合规定即符合双色球说明) import sys x=input('请输入红球号码') user_red_number = x.split(",") user_red = [int(user_red_number[i]) for i in range(len(user_red_number))] if (len(user_red)!=5 or len([x for x in user_red if x>20 or x<1]) or len(user_red) != len(set(user_red))): print("您输入的值不符合规定") sys.exit() else:print("成功输入红球号码") y=int(input('请输入蓝球号码')) if (y>10|(y<1)): print("您输入的值不符合规定") sys.exit() else:print("成功输入蓝球号码") # 判断是否中奖(与计算排列情况对应,判断用户输入的情况是否满足一二三四等奖的要求,否则不中奖,最后显示本次运行模拟的双色球开奖号码) user_red_tuple = tuple(user_red) if y==kaijiang_blue_ball: if user_red_tuple in jiang12: print("恭喜您中了一等奖") elif user_red_tuple in jiang3: print("恭喜您中了三等奖") elif user_red_tuple in jiang4: print("恭喜您中了四等奖") elif user_red_tuple in jiang12: print("恭喜您中了二等奖") else: print("很遗憾,您没有中奖") print("本期红球号码为") print(kaijiang_red_ball) print("本期蓝球号码为") print(kaijiang_blue_ball) #用all列表模拟在数据库中删除用户买过的彩票(这部分可以不写,因为不是真的数据库,所以再次运行会重置all列表) blue = [] red = [x for x in range(1, 21)] for rad_ball_permutation in permutations(red, 5): blue.append(rad_ball_permutation) all = [blue,blue,blue,blue,blue,blue,blue,blue,blue,blue] index_one = all[y - 1].index(user_red_tuple) del all[y-1][index_one]
用python做一个简单的双色球系统
于 2022-03-19 18:13:12 首次发布