Python实现双色球号码随机生成

和体彩大乐透类似,福彩双色球也是购买次数最多的彩种之一,相比大乐透,双色球更容易中小奖。本文将介绍 Python 实习双色球彩票自由的流程,感兴趣的可以了解一下

1. 随机一注

福彩双色球一注同样包含 7 个数字,包含 6 个红球和 1 个篮球

其中

  • 红球是从 1 - 33 中选择 6 个不同的数字
  • 蓝球是从 1 - 16 中选择 1 个不同的数字

使用 Python 随机生成一注双色球号码,部分代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

def gene_ssq(number):

    """

    随机产生几注双色球(6+1)

    :param number:

    :return:

    """

    result = []

    for item in range(number):

        reds = []

        # 产生6个红球

        while len(reds) < 6:

            # 从1-33中随机取一个数字

            temp_red_num = random.randint(133)

            if temp_red_num not in reds:

                reds.append(temp_red_num)

        # 蓝球

        blue = random.randint(116)

        # 红球排序

        reds.sort()

        # 数据预处理

        reds = nums_pre(reds)

        blue = nums_pre([blue])[0]

        result.append(' '.join(reds) + " + " + blue)

    return '\n'.join(result)

需要注意的是,为了方便后面判断是否中奖,这里对红球列表进行了一次数据预处理,将小于 10 的数字前面加上 0

1

2

3

4

5

6

7

8

9

10

11

12

13

def nums_pre(nums):

    """

    购买数字预处理,如果是个位数,加上0

    :param nums:

    :return:

    """

    if nums:

        if isinstance(nums, listor isinstance(nums,tuple):

            return ['0{}'.format(int(item)) if int(item) < 10 else str(int(item)) for item in nums]

        else:

            return '0{}'.format(int(nums)) if int(nums) < 10 else str(int(nums))

    else:

        return ''

2. 红球固定或蓝球固定

这里以红球固定、蓝球固定两个最简单的场景为例,其他复杂的场景可以自行拓展

红球固定

红球固定的情况下,我们只需要随机生成一个蓝球,然后进行数据预处理,最后组成一注号码即可

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

def gene_blue_random_ssq(reds, number):

    """

    红球固定,蓝球随机

    :param reds:

    :param number:

    :return:

    """

    result = []

    for item in range(number):

        # 蓝球

        blue = random.randint(116)

        # 红球排序

        reds.sort()

        # 数据预处理

        reds = nums_pre(reds)

        blue = nums_pre([blue])[0]

        result.append(' '.join(reds) + " + " + blue)

    return '\n'.join(result)

 

蓝球固定

蓝球固定时,我们只需要从 1-33 中随机生成 6 个不同的数字组成红球

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

def gene_red_random_ssq(blue, number):

    """

    蓝球固定,红球随机

    :param blue:

    :param number:

    :return:

    """

    result = []

    for item in range(number):

        reds = []

        # 产生6个红球

        while len(reds) < 6:

            # 从1-33中随机取一个数字

            temp_red_num = random.randint(133)

            if temp_red_num not in reds:

                reds.append(temp_red_num)

        # 红球排序

        reds.sort()

        # 数据预处理

        reds = nums_pre(reds)

        blue = nums_pre([blue])[0]

        result.append(' '.join(reds) + " + " + blue)

    return '\n'.join(result)

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值