zl程序教程

您现在的位置是:首页 >  Python

当前栏目

Python 随机生成双色球

2023-04-18 14:08:23 时间

先说说双色球的组成规则:

1. 双色球投注区分为红色球号码区和蓝色球号码区

2. 红色球号码区由1-33共三十三个号码组成,红色球共 6 个,6 个红球不能重复

3. 蓝色球号码区由1-16共十六个号码组成,蓝球 1 个

4. 双色球打票的显示效果为:08 15 21 22 29 32 01

重要的是写代码的思路,确定好思路基本上按照思路写就行啦!

1. 先随机生成 6 个红球,取值范围是 1-33

2. 将生成的红球进行排序

3. 将已排序的红球长度小于 2 的进行补零

4. 随机生成 1 个蓝球,取之范围是 1-16

5. 将生成的蓝球长度小于 2 的进行补零

6. 将蓝球插入红球最后

7. 检查生成的双色球号码是否重复

8. 将合格的双色球号码写入文件

9. 写成一个函数,通过函数传入需要随机生成的双色球数量

好了,基本上就这些了,直接上代码。。。。。。

import random
import json


def double_ball(count):
    count = int(count)
    double_ball_list = []
    while len(double_ball_list) <= count:
        red_ball = random.sample(range(1, 34), 6)
        red_ball.sort()

        for red_ball_index in range(6):
            red_ball[red_ball_index] = str(red_ball[red_ball_index]).zfill(2)

        blue_ball = str(random.randint(1, 16)).zfill(2)

        red_ball.append(blue_ball)

        double_color_ball = red_ball

        if double_color_ball not in double_ball_list:
            double_ball_list.append(double_color_ball)
            double_color_ball_number = " ".join(double_color_ball)
            f = open("double_color_ball.txt", "a", encoding="utf-8")
            f.writelines(double_color_ball_number + "
")
            f.close()
        else:
            break


double_ball(10)

运行结果:

08 15 21 22 29 32 01
01 02 06 14 27 32 01
01 08 15 21 26 28 08
18 22 24 25 29 33 13
07 09 16 24 27 29 09
01 09 19 26 29 33 02
09 10 20 25 28 29 16
03 04 05 10 12 14 15
01 04 08 21 25 29 04
04 05 08 27 31 33 03
03 04 08 11 14 29 01