凯撒密码加密算法(8分)
编写一个凯撒密码加密程序,接收用户输入的文本和密钥k,对明文中的字母a-z和字母A-Z替换为其后第k个字母。
输入格式:
接收两行输入,第一行为待加密的明文,第二行为密钥k。
输出格式:
输出加密后的密文。
输入样例:
在这里给出一组输入。例如:
Hello World!
3
输出样例:
在这里给出相应的输出。例如:
Khoor Zruog!
方法一
s1=list('abcdefghijklmnopqrstuvwxyz')
s2=list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
s=list(input())
n=int(input())
for i in range(len(s)):
if s[i] in s1:
s[i]=s1[(s1.index(s[i])+n)%26]
elif s[i] in s2:
s[i]=s2[(s2.index(s[i])+n)%26]
print(''.join(s))
方法二
import string
def kaisa(s,k):
lower=string.ascii_lowercase
upper=string.ascii_uppercase
before=string.ascii_letters
after=lower[k:]+lower[:k]+upper[k:]+upper[:k]
table=''.maketrans(before,after)
return s.translate(table)
n=input()
k=int(input())
print(kaisa(n,k))