描述
对字母和数字进行加密和解密。密钥是一个数字,用于加密和解密。
输入
输入有三行,每行一项,分别是模式、密钥、需要处理的信息。
第一行为模式,可能是 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')
觉得有用的话采纳一下哈