某公司笔试题 - 简单密码(附python代码)

发布时间 2023-08-16 00:10:58作者: Alpha_To_Beta
# 现在有一种密码变换算法。九键手机键盘上的数字与字母的对应: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 先变成小写x, 在往后移一位变成y; Z往后移是a
# 数字和其它的符号都不做变换
# 数据范围:输入的字符串长度满足0<=n<=100

psd = input("请输入密码:")
if 0 <= len(psd) <= 100:
   # 遍历输入的字符串
for i in psd:
     # 判断是小写字母
if i.islower():
if i in "a,b,c":
i = 2
elif i in "d,e,f":
i = 3
elif i in "g,h,i":
i = 4
elif i in "j,k,l":
i = 5
elif i in "m,n,o":
i = 6
elif i in "p,q,r,s":
i = 7
elif i in "t,u,v":
i = 8
elif i in "w,x,y,z":
i = 9
     # 判断是大写字母 
elif i.isupper():
        # 是大写字母,先转成小写,然后转成ASCII码,并向后移动一位
i = i.lower()
if "a" <= i < "z":
i = chr(ord(i)+1)
        # 如果是z,后移就是a
else:
i = "a"
print(i, end='')
else:
print("输入的字符串长度超出数据范围")