字符串及相关习题

例题1:翻译密码
密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。

假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。

他是这么变换的,大家都知道手机上的字母: 1–1, abc–2, def–3, ghi–4, jkl–5, mno–6, pqrs–7, tuv–8 wxyz–9, 0–0,就这么简单,渊子把密码中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换,

声明:密码中没有空格,而密码中出现的大写字母则变成小写之后往后移一位,如:X,先变成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦。
输入
YUANzhi1987
输出
zvbo9441987

while True:
    try:
        str1=input()
        #str1='q84gZ2lk24dbC8RL97a13l6n65ImZA'
        #str1='YUANzhi1987'
        #利用arr1来存储编译后的密码
        
        arr1=[]
        for i in str1:
            #i='2'
            if i.isalnum():
                if i.isdigit():
                    arr1.append(str(i))
                    continue
                #如果是字母
                if i.isalpha():
                    if i.isupper():
                        if i=='Z':
                            arr1.append('a')
                            continue
                        else:
                            i=i.lower()
                            zimu=dict1['字母']
                            index1=zimu.index(i)
                            arr1.append(zimu[index1+1])
                            continue
                    if i.islower():
                        for key,value in dict1.items():
                            if i in key:
                                arr1.append(str(dict1[key]))
                                continue
            else:
                arr1.append(str(i))
        print(('').join(arr1))
    except:
        break

你可能感兴趣的:(算法及数据结构)