任务:编写一个能实现双色球选号的小程序。
要求:双色球选号由7个数字组成,其中有6个红球,其号码的取值范围为[1,33],一个蓝球的取值范围为[1,16],要求6个红球从小到大排列,蓝球在最后输出。其输出格式为09 12 16 20 30 33 | 03
。(注意,如双色球号码为3,则必须输出03)
说明:
测试输入:7(
选7注)
预期输出:
09 12 16 20 30 33 | 03
01 07 08 09 18 31 | 16
05 08 21 26 28 31 | 05
01 03 06 22 25 33 | 02
02 09 16 20 27 28 | 13
15 19 24 26 28 32 | 05
02 05 07 16 24 32 | 09
提示:等概率的生成一组无重复的数,可以采用sample函数,如要在1-10中等概率抽取6位数,代码如下:
from random import sample
t = [x for x in range(1, 11)]
print(sample(t,6))
代码:
from random import randrange, randint, sample
import random
def display(balls):
"""
按照题目所要求格式输出列表中的双色球号码
:param balls:双色球号码列表,如[9,12,16,20,30,33 3]
:print:输出格式为09 12 16 20 30 33 | 03
:return: 无返回值
"""
# *************begin************#
blue = balls[len(balls) - 1]
red = balls[:len(balls) - 1]
red.sort(reverse=False)
for i in range(len(red)):
print('{:0>2}'.format(red[i]), end=" ")
print('| {:0>2} '.format(blue))
# **************end*************#
def random_select():
"""
随机选择一组号码
:return: 返回随机选择的这一组号码,如[9,12,16,20,30,33 3]
"""
# *************begin************#
blue_list = sample([x for x in range(1, 34)], 6)
red_list = sample([x for x in range(1, 17)], 1)
return blue_list + red_list
# **************end*************#
# n为注数
def main(n):
for _ in range(n):
display(random_select())
random.seed(3)
n = int(input())
if __name__ == '__main__':
main(n)