Python.电文加密/解密
描述
有一行电文,已按如下规律译成密码:
A–>Z a–>z
B–>Y b–>y
C–>X c–>x
… …
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。
代码
import string
n=input()
lower=string.ascii_lowercase
upper=string.ascii_uppercase
s1=lower+upper
s2=lower[::-1]+upper[::-1]
table=''.maketrans(s1,s2)
print(n.translate(table))
#运行结果:
ABC123abc
ZYX123zyx
注:
- string.ascii_lowercase可返回’abcdef…xyz’
- string.ascii_uppercase可返回’ABCDEF…XYZ’
- 字符串对象的maketrans()方法可以用来生成字符映射表
- translate()方法用来根据映射表中定义的对应关系转换字符串并替换其中的字符