需求:

双色球,生成号码写入文件

中奖号码由6个红色球号码和1个蓝色球号码组成

篮球范围:01-16,random.ranint(1,16),1-9要补零

红球范围:01-33

def ssq(num):#随机机选多少个号码,用函数完成

输出不重复的号码文件(红球顺序不同算重复)

输出格式 蓝球:05 红球 03 33 02 13 14 19

 

实现:

import random
def auto_select(): #随机选取一个双色球结果
    blue = str(random.randint(1, 17)).zfill(2)
    red_s = set()
    while len(red_s) != 6:#不用random.sample()因为随机取N个元素可能存在重复
        red = str(random.randint(1, 34)).zfill(2)
        red_s.add(red)
    res = '蓝球:{}  红球:{}\n'.format(blue,' '.join(sorted(red_s)))
    #红球顺序不同算重复,所以添加排序
    return res

def write_file(l):#将机选结果写入文件
    with open('双色球机选结果', 'w', encoding='utf-8') as fw:
        fw.writelines(l)

def main():
    num = input('请输入需要机选的数量')
    if num.isdigit():
        num = int(num)
        res_s = set()
        while len(res_s) != num:
            res_s.add(auto_select())
        write_file(res_s)
    else:
        print('机选个数必须为整数')
main()

 

posted on 2018-04-26 11:01  忻冉然  阅读(414)  评论(0编辑  收藏  举报