python加密函数(简单初学者)

5.编写一个加密函数,实现对一个给定字符串中的字母转变为其后n个字符,如果遇到超过字母边界,则从最小字母继续计数,连续的数字字符作为一个整数扩大n倍之后替换到对应位置,其中n默认为5。再编写一个解密函数实现对上述加密字符串进行解密。编写测试程序,在测试程序中输入字符串,并输出加密和解密后的字符串。
例如:
字符串str1: avbV125av1, n默认为5
则新的字符串str2: fagA625fa5


import re
 
 
def encrypt(str1):
    list_2, list_3 = [], []
    list_1 = re.findall(r'[^\W\d_]+|\d+', str1) #注释一
    for i in list_1:
        try:
            list_2.append(5 * int(i))
        except ValueError:
            list_2.append(i)                    #注释二
    for i in list_2:
        list_3.append(str(i))   #这个步骤是因为字符串和整数是无法进行join()操作的,所以是整数进行字符串化的操作
    list_2.clear()
    str1 = ''.join(list_3)
    list_3.clear()                              #注释三
    for i in str1:
        list_3.append(i)
    for i in list_3:
        if 65 <= ord(i) <= 90:
            s = ord(i) + 5
            if s <= 90:
                list_2.append(chr(s))
            else:
                s = s - 90 + 65 - 1
                list_2.append(chr(s))
        elif 97 <= ord(i) <= 122:
            s = ord(i) + 5
            if s <= 122:
                list_2.append(chr(s))
            else:
                s = s - 122 + 97 - 1
                list_2.append(chr(s))
        else:
            list_2.append(i)
    str2 = ''.join(list_2)                     
    return str2
 
 
def decipher(str2):
    list_2, list_3 = [], []
    list_1 = re.findall(r'[^\W\d_]+|\d+', str2)
    for i in list_1:
        try:
            list_2.append(int(i) // 5)
        except ValueError:
            list_2.append(i)
    for i in list_2:
        list_3.append(str(i))
    list_2.clear()
    str1 = ''.join(list_3)
    list_3.clear()
    for i in str1:
        list_3.append(i)
    for i in list_3:
        if 65 <= ord(i) <= 90:
            s = ord(i) - 5
            if s >= 65:
                list_2.append(chr(s))
            else:
                s = 90 - 65 + s + 1
                list_2.append(chr(s))
        elif 97 <= ord(i) <= 122:
            s = ord(i) - 5
            if s >= 97:
                list_2.append(chr(s))
            else:
                s = 122 - 97 + s + 1
                list_2.append(chr(s))
        else:
            list_2.append(i)
    str2 = ''.join(list_2)
    return str2
 
 
if __name__ == '__main__':
    str1 = (input('Input str1:'))
    print('After encrypting:', end='')
    print(encrypt(str1))
    str2 = encrypt(str1)
    print('After deciphering:', end='')
    print(decipher(str2))