凯撒密码 对字母和数字进行加密和解密

描述
对字母和数字进行加密和解密。密钥是一个数字,用于加密和解密。

输入
输入有三行,每行一项,分别是模式、密钥、需要处理的信息。
第一行为模式,可能是 e, E, encrypt, Encrypt (这四个表示加密), d, D, decrypt, Decrypt (这四个表示解密), 或者是其他字符串。
第二行为密钥,是一个大于 0 且小于等于 26 的整数。
第三行为需要处理的信息,是一个字符串。

输出
如果模式表示加密或解密,则输出一个字符串,表示加密信息或解密信息。
如果模式既不是加密或解密,那么不论密钥和需要处理的信息是什么,都输出 "Wrong Mode"。

举个例子,假设密钥是 3,对于字母而言,比如 'a' 或 'A',加密后是 'd' 或 'D';类似的,'d' 或 'D' 解密后是 'a' 或 'A'。大写字母和小写字母都按照字母表顺序排列,如果加密或解密后的字母按照规则超出 a/A 或 z/A,则循环顺延。比如当密钥是 3,字母 'b' 解密时应该向前移动 3 位,按照 b-a-z-y 的次序解密为 'y',字母 'z' 加密时向后移动三位,按照 z-a-b-c 的次序加密为 'c'。数字的处理也是相同的,假设密钥是 15,则数字 8 加密后为 (8 + 15) 除以 10 的余数 3,数字 3 解密后为 (3 - 15)除以 10 的余数 8。对于其他字符,不做加密解密处理。

mode = input()
key = int(input())
content = input()
result=''
if mode in ['e','E','encrypt','Encrypt']:
    for i in range(len(content)):
        if 'a'<=content[i]<='z':
            t = ord(content[i])+key
            if chr(t)>'z':
                t = t - 26
            result+=chr(t)
        elif 'A'<=content[i]<='Z':
            t=ord(content[i])+key
            if chr(t)>'Z':
                t = t - 26
            result+=chr(t)
        elif '0'<=content[i]<='9':
            result+= str((int(content[i])+key)%10)
        else:
            result+=content[i]
    print(result)
elif mode in ['d','D','decrypt','Decrypt']:
    for i in range(len(content)):
        if 'a'<=content[i]<='z':
            t = ord(content[i])-key
            if chr(t)<'a':
                t = t + 26
            result+=chr(t)
        elif 'A'<=content[i]<='Z':
            t=ord(content[i])-key
            if chr(t)<'A':
                t = t + 26
            result+=chr(t)
        elif '0'<=content[i]<='9':
            result+= str(abs(int(content[i])-key)%10)
        else:
            result+=content[i]
    print(result)
else:
    print('Wrong Mode')


 觉得有用的话采纳一下哈