1

如何在命令行中读取浮点数或整数?

test.py 11 22.4 11.7 99.9 69

我试过了:

numbersList = float(sys.argv[1:len(sys.argv)])
4

4 回答 4

11
import sys
args = map(float, sys.argv[1:])

或者,如果您更喜欢列表理解:

args = [float(x) for x in sys.argv[1:]]
于 2013-09-03T17:22:19.227 回答
2

更高级别的解决方案,argparse而不是sys.argv直接使用:

import argparse
p = argparse.ArgumentParser()
p.add_argument('values', nargs="*", type=float)
args = p.parse_args()

numbersList = args.values
于 2013-09-03T17:47:22.637 回答
1

要迭代您的列表,请尝试:

numbersList = [float(sys.argv[i]) for i in range(1, len(sys.argv))]
于 2013-09-03T17:23:34.587 回答
1

如果仅重要的是您将信息作为数字读取并且不需要区分整数和浮点数,您可以尝试这样的事情

import sys

print sum(map(float, sys.argv[1:]))
于 2013-09-03T17:24:06.630 回答