python随练 | 巨Low版本彩票系统小练

#coding=utf-8
_date_ = '2018/12/22 11:13'
"""
彩票系统
1.买彩票 记录
2.生成彩票
3.对比中奖用户
"""
import logging
import random
class lottery():
    def in_num(self):
        """
        输入彩票的位数
        :return: 彩票的个数
        """
        in_num=input('要买彩票的位数:')
        return int(in_num)

    def show_lottery(self,user_num):
        """
        显示购买名单
        :param user_num:
        :return:购买名单
        """
        print("本期购买的嘉宾名单")
        for k,v in user_num.items():
            nums = ' '.join('%s' % num for num in v)
            print(str(k)+':'+str(nums))

    def buy_lottery(self):
        """
        购买彩票
        :return:字典=用户+彩票字典
        """
        info={}
        while True:
            print('欢迎进入彩票购买系统(q键退出)')
            name=input('名字:').strip()
            if name=='q':
                break
            try:
                num=input('号码(用空格隔开):').strip()
                num=num.split() #变成个列表
                num=list(map(int,num)) #将列表里面的str变成int
            except ValueError:
                print('类型错误,请重新输入')
                continue
            info[name]=num
        return info

    def create_lottery(self,number):
        """
        生成彩票序列
        :param number:彩票的位数
        :return:
        """
        lottery_num=[]
        for i in range(number):
            num=random.randint(1,10)
            lottery_num.append(num)
        return lottery_num

    def show_create_lottery(self,lottery_num):
        nums = ' '.join('%s' %num for num in lottery_num)
        print('本期奖号为:{}'.format(nums))

    def is_equally(self,lottery_num,user_num):
        """
        对比中奖信息
        :param user_num:用户中列表号码
        :param lottery_num:生成彩票的号码
        :return:user_name+中奖号码
        """
        for k,v in user_num.items():
            if v==lottery_num:
                print('恭喜\033[1;31;m {} \033[0m获得\033[1;31;m 500万RMB \033[0m'.format(k))

        return print('本期开奖结束')

if __name__=="__main__":
    logging.basicConfig(level=logging.INFO)  
    l=lottery()
    in_num=l.in_num()   #控制彩票位数
    lottery_num=l.create_lottery(in_num)  #创建彩票号码
    logging.info(msg=lottery_num) #生成调试日志
    user_num=l.buy_lottery() #购买名单
    l.show_create_lottery(lottery_num) #开奖彩票信息
    l.show_lottery(user_num=user_num)  #购买者信息名单
    l.is_equally(user_num=user_num,lottery_num=lottery_num) #判断是否相等

运行信息

要买彩票的位数:2
INFO:root:[8, 3]
欢迎进入彩票购买系统(q键退出)
名字:tom
号码(用空格隔开):1 2
欢迎进入彩票购买系统(q键退出)
名字:alex
号码(用空格隔开):8 3
欢迎进入彩票购买系统(q键退出)
名字:q
本期奖号为:8 3
本期购买的嘉宾名单
tom:1 2
alex:8 3
恭喜 alex 获得 500万RMB
本期开奖结束

猜你喜欢

转载自www.cnblogs.com/404NooFound/p/10161412.html
今日推荐