#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
本期开奖结束