如何在python中使用输入字符串作为变量调用?

时间:2012-09-21 23:36:32

标签: python variables python-3.x

我是初学蟒蛇学习者。我想知道是否可以在不使用任何模块的情况下创建基本的按摩加密系统。我希望我的程序检查并使用字符串中的变量名称。

让我们说,

a = 'l'
b = '5'
c = 'o'

x = input("Enter your massage: ")

print(x, 'THE_USER INPUT matching the variable name and values')

我知道我可以使用while或if,但这需要永远。另外,在匹配变量之前,如何分隔每个字符串字母。

我正在使用python 3.谢谢:)

3 个答案:

答案 0 :(得分:2)

我不知道这是不是你想要做的,但是这里有:

a = 'l'
b = '5'
c = 'o'

x = input("Enter your message: ")
values = [globals().get(var, '') for var in list(x)]

print "".join(values)

示例

Enter your message: abc
l5o

更合适的方法可能是:

replacements = { 'a': 'l', 'b': '5', 'c': 'o' }

x = input("Enter your message: ")
print "".join([replacements.get(val, "") for val in x])

答案 1 :(得分:1)

使用string.translate这是一种更正确的方式来做你想要的事情

from string import maketrans

in_tab  = "abcdefghijklmnopqrstuvwxyz "
out_tab = "5QR&*(=-;Wwz%$^#@!yY~:123xq"

t = maketrans(in_tab,out_tab)
print ("Hello World".translate(t))

答案 2 :(得分:1)

如果您想用另一个字符替换给定字符的每个匹配项,请查看str.translate函数。

您可以按如下方式扩展示例代码:

import string

in = input("Enter your message: ")
mapping = string.maketrans('abc', '15o')
out = in.translate(mapping)
print(out)

每个a1替换,每b5替换,每co替换。