前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python练手脚本之双色球

python练手脚本之双色球

作者头像
IT运维技术圈
发布2023-03-17 15:28:30
5470
发布2023-03-17 15:28:30
举报
文章被收录于专栏:IT运维技术圈IT运维技术圈

背景:

新写的项目还在跟前端的小伙伴沟通,等待她帮我调试完毕。

所以最近不是那么忙。

没事翻翻之前写的脚本,寻思开源一些给大家参考。

作为运维的我们经常要写各种脚本来帮助大家工作,当然写脚本是非常容易的,但是想要写好却又不是那么简单。

下面这个是我之前写的一个双色球脚本,逻辑简单,但是这里主要是锻炼使用argparse模块的add_argument方法。

它可以让你的脚本多了很多可选参数, 这样脚本的扩展性将会非常高。

脚本需求可以一次指定随机多少注,可以指定蓝球几个和红球,剩下的随机。或者全部都是随机都可以。

代码语言:javascript
复制
import random
import argparse

# 双色球规则
red_ball_range = range(1, 34)
blue_ball_range = range(1, 17)
num_red_balls = 6
num_blue_balls = 1


def generate_lottery(red_nums, blue_nums):
    all_red = set(red_ball_range)
    all_blue = set(blue_ball_range)

    # 指定了部分红球和蓝球
    if red_nums and blue_nums:
        red_balls = set(red_nums)
        blue_balls = set(blue_nums)
    else:
        red_balls = set()
        blue_balls = set()

    # 随机生成剩余的红球和蓝球
    red_balls = red_balls.union(set(random.sample(all_red - red_balls, num_red_balls - len(red_balls))))
    blue_balls = blue_balls.union(set(random.sample(all_blue - blue_balls, num_blue_balls - len(blue_balls))))

    return sorted(red_balls), sorted(blue_balls)


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='生成指定数量的双色球号码')
    parser.add_argument('--red-num', nargs='+', type=int, help='指定红球号码')
    parser.add_argument('--blue-num', nargs='+', type=int, help='指定蓝球号码')
    parser.add_argument('--num-groups', type=int, default=1, help='生成号码组数')
    args = parser.parse_args()

    for i in range(args.num_groups):
        red, blue = generate_lottery(args.red_num, args.blue_num)
        print(f'第 {i + 1} 组号码:')
        print('红球:', end='')
        for num in red:
            print(f'{num:02d}', end=' ')
        print('\n蓝球:', end='')
        for num in blue:
            print(f'{num:02d}', end=' ')
        print('\n')

具体执行命令:

代码语言:javascript
复制
python3.9 shuangseqiu.py --red-num 2 7 --blue-num 5 --num-groups 3

其中:

代码语言:javascript
复制
--red-num 2 7 --blue-num 5 --num-groups 3

上面这三个可选参数。

结果如下:

如果该文章对各位有帮助,也希望大家能予以关注分享,以便让波哥出更多更好的作品回馈大家。谢谢各位!~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT运维技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档