如何在python 3中打印变量用户输入?

时间:2015-05-30 11:44:31

标签: python

所以基本上,我有一个python程序,但有一点我需要帮助。 当用户输入变量名时,我希望它打印变量值,而不是变量名,即使该变量不存在。这就是我现在所拥有的:

    CMD = input(">>>>  ")

    if CMD[0:17] == "console.printVar(" and CMD[-1:] == ")" and CMD[-2:]!="')":
    try:
        CMD[13:-1]
    except NameError:
        print("Variable "+CMD[13:1]+" Not defined")
        Main()
    else:
        print(CMD[17:-1])
        Main()

哦,为了防止它不清楚,我正在编写一种编码语言。

3 个答案:

答案 0 :(得分:1)

要按名称获取全局变量的值,请使用globals()字典:

name = CMD[17:-1]
print(globals()[name])

答案 1 :(得分:1)

您可以将本地(函数)作用域作为带有locals()的dict,将全局(模块)作用域作为带有globals()的dict。现在你可能想要阅读更多关于解析,AST等...

答案 2 :(得分:-1)

您只需致电eval(CMD[17:-1])

但是,这不只是评估变量名称,因此请注意,用户不能对您的代码执行任何恶意操作。