繁体   English   中英

如何将变量转换为一串值

[英]How Can I Turn Variables Into A String of Values

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

例如:

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

那么如果客户端输入:a,b,bb,aa,zz,a,b

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

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

我建议为此使用字典,如下所示:

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 以处理此问题。 或者,您可以使用字典的 .get() 方法,该方法允许您提供默认值作为第二个参数。

最好使用您自己定义的字典来实现这一点。 但是,如果像你说的,你不想改变你如何与这些变量的工作,你也可以利用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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM