题解 | #简单密码#
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
ac_paw = input() de_paw = [] def deal(n): n = str(n) if n==1: return 1 elif n in 'abc': return 2 elif n in 'def': return 3 elif n in 'ghi': return 4 elif n in 'jkl': return 5 elif n in 'mno': return 6 elif n in 'pqrs': return 7 elif n in 'tuv': return 8 elif n in 'wxyz': return 9 elif n ==0: return 0 lis = '0123456789abcdefghijklmnopqrstuvwxyz' for i in ac_paw: if i.islower() and i.isalpha(): s = deal(i) de_paw.append(str(s)) elif i.isupper() and i.isalpha(): f = i.lower() s = lis.find(f) if s == len(lis) - 1: de_paw.append('a') else: st = lis[s+1] de_paw.append(st) else: de_paw.append(i) d = [str(x) for x in de_paw if isinstance(x, str)] result = ''.join(d) print(result)
花了俩小时,调来调去还是挺麻烦的,总结了一下几个要点
1.字母小写处理方法,一个函数加一个判断分支
2.字母大写处理方法,一个字符串加一个判断分支
3.一个列表推导式处理数据拼接问题。