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

# 现在有一种密码变换算法。九键手机键盘上的数字与字母的对应: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("输入的字符串长度超出数据范围")
posted @   Alpha_To_Beta  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示