我先创建一个简单函数,来计算圆柱体体积。包括两个参数半径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
代码如下(示例):
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))
#命令行中输入计算圆柱体体积
python program/argparse_tutorial.py 2 4
#命令行中调用help
python program/argparse_tutorial.py -h
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
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))
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))
这里我就不写了,可以点一下这个链接如果想要文档可以点击这个