Python每日一练(1)-中国福彩双色球生成机

中国福利彩票双色球是由中华人民共和国财政部制定的,是一种联合发行的乐透型福利彩票。双色球每注2元,投注号码由6个红色球号码1个蓝色球号码组成。红色球号码从1~33中选择,蓝色球号码从1~16中选择。双色球采取全国统一奖池计奖。请编写程序,完成如下功能:

(1) 输入要生成的福彩双色球组数,随机批量产生福彩双色球号码,效果如图所示。
在这里插入图片描述
示例代码如下:

# -*- coding: utf-8 -*-
# @Time    : 2020/4/1 21:42
# @Author  : 我就是任性-Amo
# @FileName: 50.中国福彩双色球生成机.py
# @Software: PyCharm
# @Blog    :https://blog.csdn.net/xw1680

import random  # 导入模块


def change_str(x):
    """功能:将数字转换为字符串"""
    x = str(x)
    # 三元表达式: A if 条件 else B 条件成立返回A 不成立返回B
    # 如果是个位数 在其前方补0 否则返回本身 举例: 1-->01 31-->31
    x = '0' + x if len(x) == 1 else x
    return x


def create(num):
    nums_red = list(map(change_str, range(1, 34)))  # 生成红球号码列表,范围在1-33
    nums_blue = list(map(change_str, range(1, 17)))  # 生成蓝球号码列表,范围在1-16
    for i in range(num):  # 生成指定组号码
        # random.sample: 从指定序列中随机获取指定长度的片断并随机排列。
        # 注意: sample函数不会修改原有序列。
        # 从nums_red中获取6个数 并随机排列
        num_red = random.sample(nums_red, 6)  # 随机获取红球号码
        num_blue = random.sample(nums_blue, 1)  # 随机获取蓝球号码
        print(f"\033[1;31m{'  '.join(num_red)}  \033[1;34m{num_blue[0]}\033[0m")


if __name__ == '__main__':
    nums = input('请输入要生成的福彩双色球组数: ').strip()
    print('-' * 40)
    if nums.isdigit():  # 判断输入的是否是数字
        create(int(nums))

(2) 每个人都有自己的幸运数字,把幸运数字作为蓝球,按照输入的幸运数字及要生成的双色球彩票组数,输出福彩双色球号码,效果如图所示。
在这里插入图片描述
示例代码如下:

# -*- coding: utf-8 -*-
# @Time    : 2020/4/1 21:42
# @Author  : 我就是任性-Amo
# @FileName: 50.中国福彩双色球生成机.py
# @Software: PyCharm
# @Blog    :https://blog.csdn.net/xw1680

import random  # 导入模块


def change_str(x):
    """功能:将数字转换为字符串"""
    x = str(x)
    # 三元表达式: A if 条件 else B 条件成立返回A 不成立返回B
    # 如果是个位数 在其前方补0 否则返回本身 举例: 1-->01 31-->31
    x = '0' + x if len(x) == 1 else x
    return x


def create(num, luck_num):
    nums_red = list(map(change_str, range(1, 34)))  # 生成红球号码列表,范围在1-33
    num_blue = change_str(luck_num)  # 篮球号码
    for i in range(num):  # 生成指定组号码
        num_red = random.sample(nums_red, 6)  # 随机获取红球号码
        print(f"\033[1;31m{'  '.join(num_red)}  \033[1;34m{num_blue}\033[0m")


if __name__ == '__main__':
    lucky_num = input("请输入您的幸运号码(1-16)作为蓝球号码: ").strip()
    nums = input("请输入要生成的福彩双色球组数: ").strip()
    print('-' * 40)
    if nums.isdigit() and lucky_num.isdigit():  # 判断输入的是否是数字
        create(int(nums), lucky_num)

以上案例主要是运用了循环,自定义函数,map函数,random模块。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章