题目
编写一个凯撒密码加密程序,接收用户输入的文本和密钥k,对明文中的字母a-z和字母A-Z替换为其后第k个字母。
输入格式:
接收两行输入,第一行为待加密的明文,第二行为密钥k。
输出格式:
输出加密后的密文。
输入样例:
在这里给出一组输入。例如:
Hello World!
3
输出样例:
在这里给出相应的输出。例如:
Khoor Zruog!
实现
思路
将字符转成ASCII码,加上Step后,再转换回Char字符。
注意:边界问题,字母+step如果超出Z应当循环回字母表的头。如z后移3个字符='c'
代码
whiteStr=input()
step=int(input())
result=""
for i in range(0,len(whiteStr)):
if whiteStr[i].isalpha():
a = 'a'
if not whiteStr[i].islower():
a = 'A'
ind = (ord(whiteStr[i]) - ord(a) + step) % 26 + ord(a)
result+=chr(ind)
else:
result+=whiteStr[i]
print(result,end='')