Python函数练习--彩票双色球产生机制及存入文件
一、彩票双色球练习 --题目要求:
1、一个号码序列包含1个蓝色球,6个红色球(其中蓝色球数字号码1-16中任意数字;红色球数字号码1-33中任意6个数字)
2、每个号码球数字显示为两位(如:01 03 23)
3、每一个号码序列按从小到大排列
3、输入数字几,就产生几个号码序列
4、将产生的号码序列存入文件sequence.txt中
5、文件中的号码序列不得重复
参考答案:
import random FILE_NAME = 'sequence.txt' def op_file(content=None): """ :param content: content,传入文件内容 :return: 返回读取的整个文件 """ with open('sequence.txt','a+',encoding='utf-8') as fw: if content: fw.write(content) else: fw.seek(0) return fw.read() def create_ball(): """ :return: None """ blue_ball = [str(i).zfill(2) for i in range(1,17)] blue_str = random.choice(blue_ball) red_ball = [str(i).zfill(2) for i in range(1,34)] red_seq = random.sample(red_ball,6) red_seq.sort() red_str = ' '.join(red_seq) result = '红球是:%s 蓝球是:%s\n'%(red_str,blue_str) if result not in FILE_NAME: op_file(result) def count(num): """ :param num: 输入随机数字 :return: 返回num次 create_ball函数的结果 """ for c in range(num): create_ball() count(8)
二、知识点回顾:
1、列表生成式写法 [x for x in rang(10)]==> 生成0-9的列表
2、条件列表生成式写法 [x for x in rang(10) if x%2==0]==> 生成0-9中,偶数的列表
3、列表转换成字符串==>' '.join(list)