如何将变量转换为值字符串

时间:2017-06-11 17:52:55

标签: python

我不知道这是否可行(python新手),但是我想使用已定义变量的列表,当我在shell或cmd中运行以接受输入时,则显示已翻译的文本。

举个例子:

a = "00";
aa = " 0000";
b = "11";
bb =" 1111";
zz =" ";

然后,如果客户输入:a,b,bb,aa,zz,a,b

我希望它显示:0011 1111 0000 0011 (就像那样)

如果有其他方法,我想坚持当前的分配变量的方式。

2 个答案:

答案 0 :(得分:0)

我建议使用字典,如下:

translations = {
    'a' : '00',
    'aa' : '0000',
    'b' : '11',
    'bb' :'1111',
    'zz' : ''
}

# python3
userInput = input()
print(' '.join(translations[key.strip()] for key in userInput.split(',')))

# python2
userInput = raw_input()
print ' '.join(translations[key.strip()] for key in userInput.split(','))

请注意,如果用户输入了未定义的密钥,则会引发KeyError。您可以将dict查找包装在try-except块中,并捕获KeyError来处理此问题。

答案 1 :(得分:0)

最好用自己定义的字典来实现这一目标。但如果如你所说,你不想改变你使用这些变量的方式, 也可以使用locals(),这使你可以访问定义的本地字典变量。为了给你一个完全成熟的例子:

a = "00"
aa = " 0000"
b = "11"
bb =" 1111"
zz =" "
variables = input("Variable string? ")
# Process the input into variable names
variables = [variable_.strip() for variable_ in variables.split(",")]
# Find values assigned to each variable
text = []
for variable_ in variables:
    try:
        text.append(str(locals()[variable_]))
    except KeyError:
        print("Variable {} not found".format(variable_))
print("".join(text))
相关问题