我正在尝试创建一个简单的计算器,它在命令行中接受参数。例如在命令行:
Calculator.py 1 2 44 6 -add
会给我数字的总和。但是,用户如何输入无限量的参数。我知道您必须在函数中使用 *args 或类似的东西,我只是想知道如何使用 argparse 将其合并到命令行中。
您不需要,命令行参数存储在sys.argv
其中将为您提供命令行参数列表。你只需要总结它们。
from sys import argv
print sum(map(int, argv[1:])) # We take a slice from 1: because the 0th argument is the script name.
就做
python testScript.py 1 2 3
6
PS - 命令行参数存储为字符串,因此您需要将map
它们转换为整数来对它们求和。
*args
当您需要将未知数量的值传递给函数时使用。考虑以下 -
>>> def testFunc(*args):
return sum(args)
>>> testFunc(1, 2, 3, 4, 5, 6)
21
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print args.accumulate(args.integers)