双色球

python基础网课上的一个小练习题,没什么技巧性,几个知识点的综合练习吧

import random
import operator

class dbb:            #建立一个双色球对象
    def __init__(self):
        self.redb=[]
        self.blub=[]

    def welcom(self):
        print('********************************************')
        print('***************** 双色球 *******************')
        print('**************** 1、机选 *******************')
        print('**************** 2、自选 *******************')
        print('********************************************')

    def jixuan(self):
        self.redb=random.sample(range(1,34),6)   #1-34中选出6个数,不重复
        self.blub=random.randint(1,16)
        print('所选号码为:',end='')
        for i in self.redb:
            print (i,end=' ')
        print (self.blub)
        self.kaij()

    def zixuan(self):
        while(1):
            try:
                num=input('前6位红球号码,后1位篮球号码,空格隔开:\n')
                banum=num.split(' ')
                if(len(banum)!=7):
                    print("输入号码不为7个,请重新输入")
                    continue
                red=banum[0:6]
                blu=banum[6]
                for i in banum:
                    i=int(i)
                for i in red:
                    a=red.count(i)    #统计列表元素个数
                    if(a>1):
                        print("红球号码重复,请重新输入")
                        break
                break
            except ValueError:
                print("输入号码错误,请重新输入")   #判断输入号码都是整数,用isdigit()函数应该更好一点
        self.redb=red
        self.blub=blu
        print('所选号码为:',end='')
        for i in self.redb:
            print (i,end=' ')
        print(self.blub)
        self.kaij()

    def kaij(self):
        zjn=0
        red=random.sample(range(1,34),6)
        blu=random.randint(1,16)
        print ('中奖号码为:',end='')
        for i in red:
            print (i,end=' ')
        print(blu)
        for i in self.redb:
            for j in red:
                if(i==j):
                    zjn+=1                 #不知道有没有直接比较列表元素的函数,暂时没有学到就用这种方法实现了
        if(zjn==6 and operator.eq(blu,self.blub)):
            print("获得1等奖")
        elif(zjn==6):
            print("获得2等奖")
        elif(zjn==5 and operator.eq(blu,self.blub)):
            print("获得3等奖")
        elif(zjn==5 or zjn==4 and operator.eq(blu,self.blub)):
            print("获得4等奖")
        elif(zjn==4 or zjn==3 and operator.eq(blu,self.blub)):
            print("获得5等奖")
        elif(operator.eq(blu,self.blub)):
            print("获得6等奖")
        else:
            print("未获奖")

a=dbb()
while(1):
    a.welcom()
    nub=input("选择功能:")
    if(nub=='1'): a.jixuan()
    elif(nub=='2'): a.zixuan()
    elif(nub=='3'): a.kaij()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值