描述
现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
数字和其它的符号都不做变换。
数据范围: 输入的字符串长度满足 1 \le n \le 100 \1≤n≤100
输入描述:
输入一组密码,长度不超过100个字符。
输出描述:
输出密码变换后的字符串
示例1
输入:
YUANzhi1987
输出:
zvbo9441987
def secretConv(instr):
ins = instr
phone = {'a':2,'b':2,'c':2,'d':3,'e':3,'f':3,'g':4,
'h':4,'i':4,'j':5,'k':5,'l':5,'m':6,'n':6,
'o':6,'p':7,'q':7,'r':7,'s':7,'t':8,
'u':8,'v':8,'w':9,'x':9,'y':9,'z':9}
example = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
res = ''
for i in ins:
if i not in example:
res += i
# print(res)
else:
# print(i)
if ord('A') <= ord(i) < ord('Z'):
res += chr(ord(i.lower()) + 1)
# print('1:',res)
elif ord('a') <= ord(i) <= ord('z'):
res += str(phone[i])
# print('2:',res)
elif ord(i) == ord('Z'):
# print(i)
# Z 往后移是 a
res += 'a'
# res += str(phone['a'])
print(res)
# instr = 'YUAN'
# 1: z
# 1: zv
# 1: zvb
# 1: zvbo
# instr = 'zhi'
# 2: 9
# 2: 94
# 2: 944
# instr = '1987'
# 3: 1
# 3: 19
# 3: 198
# 3: 1987
instr = input().strip()
# YUANzhi1987
secretConv(instr = instr)
# zvbo9441987
# 7844a2552432d8sm9721356665j6ab
# 7844a2552432d8sm9721356665j6ab