想法大概都差不多,就是在循环里面加一个break来节约一些资源
chars = ['abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']
string = input()
newpswd = ''
for i in string:
if ord(i) >=ord('0') and ord(i)<=ord('9'):
newpswd += i
elif ord(i)>=ord('a') and ord(i)<=ord('z'):
for w in chars:
if i in w:
newpswd += str(chars.index(w)+2)
break
elif ord(i)>=ord('A') and ord(i)<=ord('Y'):
newpswd += chr(ord(i)+ord('a')-ord('A')+1)
elif i =='Z':newpswd += 'a'
print(newpswd)