0

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

比方说,

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。谢谢 :)

4

3 回答 3

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])
于 2012-09-21T23:44:18.380 回答
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))
于 2012-09-21T23:50:11.663 回答
1

如果您的意思是用另一个字符替换给定字符的每次出现,请查看该str.translate函数。

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

import string

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

Every a is substituted by a 1, every b by 5, every c by o.

于 2012-09-22T00:09:07.473 回答