python练手脚本之双色球

简介: python练手脚本之双色球

640.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


上面这三个可选参数。

结果如下:

640.png


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




相关文章
|
4天前
|
网络协议 Linux Python
Python脚本配置Centos静态ip地址
这是一个Python脚本,用于自动化配置CentOS系统的静态IP地址。脚本创建或修改文件,填写接口名(如ens33)、IP地址、子网掩码、网关和DNS。运行时需替换变量值并使用`sudo`以管理员权限执行。完成配置后,它会重启网络服务。注意,用户应根据实际网络环境调整参数。
Python脚本配置Centos静态ip地址
|
2天前
|
SQL API Python
`bandit`是一个Python静态代码分析工具,专注于查找常见的安全漏洞,如SQL注入、跨站脚本(XSS)等。
`bandit`是一个Python静态代码分析工具,专注于查找常见的安全漏洞,如SQL注入、跨站脚本(XSS)等。
19 8
|
2天前
|
网络协议 安全 Shell
`nmap`是一个开源的网络扫描工具,用于发现网络上的设备和服务。Python的`python-nmap`库允许我们在Python脚本中直接使用`nmap`的功能。
`nmap`是一个开源的网络扫描工具,用于发现网络上的设备和服务。Python的`python-nmap`库允许我们在Python脚本中直接使用`nmap`的功能。
23 7
|
5天前
|
数据采集 存储 监控
python 10个自动化脚本
【7月更文挑战第10天】
16 3
|
8天前
|
数据采集 数据处理 数据安全/隐私保护
Python的自动化脚本可以完成哪些任务?
【7月更文挑战第7天】Python的自动化脚本可以完成哪些任务?
19 3
|
7天前
|
运维 Python Windows
如何通过Python脚本查找并终止占用指定端口的进程
在日常的开发和运维过程中,某些端口被意外占用是一个常见的问题。这种情况可能导致服务无法启动或冲突。本文将介绍如何通过Python脚本查找并终止占用指定端口的进程,以确保系统的正常运行。
|
11天前
|
Shell 网络安全 网络虚拟化
|
12天前
|
监控 Python
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
|
13天前
|
存储 Linux 网络安全
|
18天前
|
存储 数据库 Python
Python 脚本死锁问题与解决方案
该 Python 脚本旨在启动多个线程,每个线程又通过 Popen 启动一个子进程。子进程将从一个数据库中的表格中将 10M 条记录传输到另一个数据库中的不同表格中。这个过程中会涉及大量的数据整理和转换,因为两个数据库具有不同的架构。子进程在执行过程中,如果遇到错误(如错误的记录或重复的主键)或执行成功,都会输出 “Done\n”;如果没有更多记录可供传输,则会输出 “NO DATA\n”。