和体彩大乐透类似,福彩双色球也是购买次数最多的彩种之一,相比大乐透,双色球更容易中小奖。本文将介绍 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(1, 33)
if temp_red_num not in reds:
reds.append(temp_red_num)
# 蓝球
blue = random.randint(1, 16)
# 红球排序
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, list) or 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(1, 16)
# 红球排序
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(1, 33)
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)
|