将变量名作为命令行参数传递给print

时间:2018-08-15 14:47:44

标签: python command-line-arguments

我想知道这是否可能

a = 100
b = 200
c = 300

print(argv[1])

我想在argv[1] = a时打印 a 的值,即当我从命令行以如下方式运行程序时

python test.py a 

输出应为100

对于其他变量bc也是如此。有可能吗?

5 个答案:

答案 0 :(得分:1)

是的,可以。我不确定您是否应该,但是可以这样:

import sys

a = 100
b = 200
c = 300

print(globals()[sys.argv[1]])

答案 1 :(得分:0)

您可以使用字典来实现:

to_print = {
  "a": 100,
  "b": 200,
  "c": 300
}

print(to_print.get(argv[1]))

答案 2 :(得分:0)

使用dict

d = {"a": 100, "b": 200, "c": 300}

print(d.get(argv[1]))

答案 3 :(得分:0)

使用字典:

values = {'a': 100, 'b': 200, 'c': 300}
print(values[argv[1]])

答案 4 :(得分:0)

您可以使用以下代码:

import sys
values = {'a': 100, 'b': 200, 'c': 300}

if __name__ == "__main__":
    try:
        print(values[sys.argv[1]])
    except KeyError:
        print("Provide correct arguments")