python练手脚本之双色球

dd02947ed6773c81f19ba93fbec964db.png

背景:

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

所以最近不是那么忙。

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

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

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

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

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

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')

具体执行命令:

python3.9 shuangseqiu.py --red-num 2 7 --blue-num 5 --num-groups 3

其中:

--red-num 2 7 --blue-num 5 --num-groups 3

上面这三个可选参数。

结果如下:

71487a27fcf775b1357bb7cc8f928ecc.png

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

小编有话说

➤推荐服务:

向下滑动查看更多

点击【IT面试精选】查看全网最权威的一线大厂面试真题及面试经验,每天更新哦!

点击【IT路边社】查看实时更新的IT新闻资讯

点击【2022互联网大事件盘点】查看2022互联网最全大事件盘点

回复【加群】群满啦!~添加波哥微信拉您进群!

点击【安全加固】获取最新安全加固脚本

点击【一键iptables脚本】获取iptables自动设置脚本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值