先奉上题目
测试的结果:
代码如下:
s = input()
t = ""
for c in s:
if 'A'<= c <= 'Z':
t += chr(ord('A') + (ord(c)-ord('A')+3)%26)
elif 'a'<= c <= 'z':
t += chr(ord('a') + (ord(c)-ord('a')+3)%26)
else:
t += c
print(t)
关键在于使用 ord() 与 chr() 函数
ord() 函数是将字符转为 Unicode 代码,通常为 10 进制
chr() 函数是将 Unicode 代码转换为字符,接受 10 进制、16进制(0xff)输入
由于凯撒密码要求往前挪3个排序作为加密后的字符,而考虑到XYZ,这3个字符如果仅仅往前挪,就会出现
{
|
}
这3个字符。所以题目中已经给了提示要在基础上 +3 再 mod26 ,就是对26个英文字母取余,然后添加到 a 的字符上。
结果如下:
完美!