python-argparse详解

1.引言

我先创建一个简单函数,来计算圆柱体体积。包括两个参数半径radius和高度heigh

import math

def cylinder_volume(radius,height):
    vol=(math.pi)*(radius**2)*height
    return vol

if __name__ == '__main__':
    print (cylinder_volume(2,4))#结果为50.26548245743669

2.引入argparse模块

代码如下(示例):

import math
import argparse

# 创建一个解析对象parser
parser = argparse.ArgumentParser(description='Calculate volume of a Cylinder')  #用来装载参数的容器
# description参数可以用于描述脚本的参数作用,默认为空

# 添加命令行参数
parser.add_argument('radius', type=int, help='Radius of Cylinder')  # type=str是默认的
parser.add_argument('height', type=int, help='Height of Cylinder')
args = parser.parse_args()

def cylinder_volume(radius, height):
    vol = (math.pi)*(radius**2)*(height)
    return vol

if __name__ == '__main__':
    print(cylinder_volume(args.radius, args.height))

3.在pycharm的Terminal中键入

在这里插入图片描述

4.输入代码

#命令行中输入计算圆柱体体积
python program/argparse_tutorial.py 2 4
#命令行中调用help
python program/argparse_tutorial.py -h

5.改变输入参数顺序

import math
import argparse

parser=argparse.ArgumentParser(description='Calculate volume of a Cylinder')
parser.add_argument('-r','--radius',type=int,help='Radius of Cylinder')#'--'使用选择性参数
parser.add_argument('-H','--height',type=int,help='Height of Cylinder')#用大写的原因是h被help所占
args=parser.parse_args()

def cylinder_volume(radius,height):
    vol=(math.pi)*(radius**2)*height
    return vol

if __name__ == '__main__':
    print (cylinder_volume(args.radius,args.height))

使用flags,选择性参数是一件好事

这样就可以改变输入参数的顺序
python program/argparse_tutorial.py -r 2 -H 4

python program/argparse_tutorial.py -H 4 -r 2

6.简化help菜单

import math
import argparse

parser=argparse.ArgumentParser(description='Calculate volume of a Cylinder')
#使用metavar指向空串
parser.add_argument('-r','--radius',type=int,metavar='',help='Radius of Cylinder')
parser.add_argument('-H','--height',type=int,metavar='',help='Height of Cylinder')
args=parser.parse_args()

def cylinder_volume(radius,height):
    vol=(math.pi)*(radius**2)*height
    return vol

if __name__ == '__main__':
    print (cylinder_volume(args.radius,args.height))

在这里插入图片描述

7. 参数是否出入完整

import math
import argparse

parser=argparse.ArgumentParser(description='Calculate volume of a Cylinder')
#required='True',使缺参数错误提示更明确
parser.add_argument('-r','--radius',type=int,metavar='',required=True,help='Radius of Cylinder')
parser.add_argument('-H','--height',type=int,metavar='',required=True,help='Height of Cylinder')
args=parser.parse_args()

def cylinder_volume(radius,height):
    vol=(math.pi)*(radius**2)*height
    return vol

if __name__ == '__main__':
    print (cylinder_volume(args.radius,args.height))

8.互斥参数

这里我就不写了,可以点一下这个链接如果想要文档可以点击这个

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值