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)

posted @ 2020-04-26 11:02  zzooZ  阅读(523)  评论(0编辑  收藏  举报