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)


猜你喜欢

转载自blog.csdn.net/sun80760/article/details/123217336