我们可以让python获取变量而不是来自raw_input()内置函数的字符串吗?

时间:2016-03-10 06:38:23

标签: python

我想知道无论如何我都可以让python raw_input()为我获取变量调用。

我理解的是,raw_input()接受写在其中的任何注释并将其转换为字符串,就像%r一样,它只是将我所理解的所有内容打印为调试模式字符串格式化。

但是如果我们尝试转换这样的东西:

test1 = int(raw_input("Please write some number:>  "))
print test1 * 100

如果我们输入100,下一行将对其执行计算功能,这是我非常有兴趣实现的,但是这样:

这不是错误的尝试,而是要大致了解我想要的内容

a = "I will like some candies"
b = "I will like some chocolates"
c = "I will rather die but have fried chicken" 
test2 = raw_input("Please write the variable name you want to print"

如果这是python采取输入的方式,我们将打印a,例如输入为a,依此类推,b和{{1等等。

在python中是否有办法让程序以变量形式从字符串中获取输入。任何转换?

提前感谢大家的帮助......

2 个答案:

答案 0 :(得分:1)

不,正如您所说raw_input返回一个字符串。如果要根据用户输入返回相关结果,最好的方法是使用字典将变量名称映射到它们的值:

my_dict = {'a': "I will like some candies"
           'b': "I will like some chocolates"
           'c': "I will rather die but have fried chicken" }

test2 = raw_input("Please write the variable name you want to print"
warning = "Please choose one of the aforementioned choices (a, b, c)"
print my_dict.get(test2,warning)

答案 1 :(得分:0)

如果它是全局变量,那么你可以这样做:

test1 = int(raw_input("Please write some number:>  "))
print test1 * 100

a = "I will like some candies"
b = "I will like some chocolates"
c = "I will rather die but have fried chicken"
test2 = raw_input("Please write the variable name you want to print ")
print globals()[test2]

如果没有,则必须指定变量的命名空间。