Python | 实现双色球选号(educoder)
任务:编写一个能实现双色球选号的小程序。
要求:双色球选号由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)
下一篇:
Java全栈开发——第二阶段